Thẻ span trong HTML là gì? Cấu trúc và các thuộc tính cơ bản

Trong lĩnh vực phát triển web, HTML (HyperText Markup Language) là nền tảng để xây dựng cấu trúc nội dung. Bên cạnh những thẻ quan trọng như div, p, a hay h1, vẫn còn tồn tại một thẻ linh hoạt và thường được sử dụng mà đôi khi chúng ta xem nhẹ, đó là thẻ span. Tuy đơn giản và không mang nhiều ý nghĩa về mặt cấu trúc, nhưng thẻ span trong HTML lại là công cụ cực kỳ hữu ích, giúp bạn dễ dàng tùy biến và định dạng chi tiết từng phần tử trên website.
 

Thẻ span trong HTML là gì? Cấu trúc và các thuộc tính cơ bản
 

Thẻ span trong HTML là gì?

Thẻ span là một thẻ HTML được sử dụng để tạo ra vùng chứa nội tuyến (inline container) chung (generic inline container). Nội tuyến ở đây có nghĩa là nó không bắt đầu một dòng mới và chỉ chiếm không gian vừa đủ với nội dung bên trong nó, nằm cùng hàng với các phần tử nội tuyến khác như văn bản, hình ảnh nhỏ hoặc các thẻ < strong >, < em >, < a > khác.

Bản thân thẻ span không có ý nghĩa ngữ nghĩa đặc biệt hay định dạng mặc định nào. Mục đích chính của nó là cung cấp một điểm neo hoặc điểm đánh dấu trong một đoạn văn bản hoặc một nhóm các phần tử nội tuyến khác để bạn có thể áp dụng CSS (Cascading Style Sheets) hoặc JavaScript lên phần nội dung được bao bọc bởi thẻ span đó.
 

Span HTML
 

Vai trò của thẻ span trong HTML

Khi xây dựng một website, bạn sẽ sớm nhận ra không phải lúc nào cũng cần một "khối" lớn để chia bố cục. Đôi khi, bạn chỉ muốn làm nổi bật một vài từ, tô màu một câu hay thêm hiệu ứng cho một ký tự cụ thể. Đây chính là lúc thẻ HTML span phát huy tác dụng.

- Định dạng chính xác từng phần nhỏ trong nội dung: Không cần thay đổi cả đoạn văn, bạn có thể tùy chỉnh riêng một phần văn bản nhỏ bằng cách “bọc” nó trong thẻ , rồi áp dụng CSS cho riêng phần đó. Ví dụ: < p > Đây là một đoạn văn bản thông thường. Nhưng < span style = "color: red;" > phần văn bản này < / span > sẽ có màu đỏ.< / p >.

- Span là cầu nối giữa HTML và CSS: Thẻ span không có kiểu dáng mặc định, nhưng lại cực kỳ "linh hoạt" khi kết hợp với class hoặc id trong CSS để biến phần nội dung đó thành điểm nhấn thẩm mỹ.

- Hỗ trợ JavaScript tương tác mượt mà: Bạn muốn gắn sự kiện click, hiệu ứng hover, hoặc xử lý nội dung động? Thẻ span HTML chính là đối tượng lý tưởng để bạn thao tác bằng JavaScript mà không phá vỡ bố cục.

- Vùng chứa chung không ngữ nghĩa: Khi bạn cần nhóm một số phần tử nội tuyến lại với nhau vì mục đích kỹ thuật (styling, scripting) nhưng nhóm đó không mang một ý nghĩa ngữ nghĩa cụ thể nào (ví dụ: nó không phải là một đoạn văn bản quan trọng, không phải là một định nghĩa, không phải là code,...), thì span là lựa chọn phù hợp nhất.

- Giữ cho bố cục gọn gàng, không phá dòng: Thẻ span là thẻ nội tuyến (inline), tức là nó không tạo dòng mới, giúp nội dung liền mạch, bố cục không bị phá vỡ - rất lý tưởng khi bạn chỉ muốn chấm phá nhẹ nhàng trong đoạn văn.

Cú pháp cơ bản của thẻ span HTML

Giống như hầu hết các thẻ HTML khác dùng để chứa nội dung, thẻ có cấu trúc gồm thẻ mở và thẻ đóng:

< span > Nội dung bạn muốn đánh dấu < /span >

Trong đó:

- < span >: Đây là thẻ mở của < span >. Nó báo hiệu "từ đây, phần nội dung được bao bọc bởi thẻ span bắt đầu".

- Nội dung bạn muốn đánh dấu: Đây là phần nội dung thực tế mà bạn muốn thẻ tác động lên. Nội dung này có thể là văn bản thuần túy, hoặc các phần tử nội tuyến khác như < a > (liên kết), < strong > (in đậm), < em > (in nghiêng), < img > (hình ảnh nhỏ),....

- < /span >: Đây là thẻ đóng của HTML span. Nó báo hiệu "phần nội dung được bao bọc bởi thẻ span kết thúc tại đây". Thẻ đóng có dấu gạch chéo (/) đứng trước tên thẻ.

Ví dụ: < p > Phương Nam Vina < span style="color: blue;" > là công ty thiết kế website uy tín!< /span > < /p >.

Kết quả: Từ “công ty thiết kế website uy tín!” sẽ có màu xanh dương, còn phần còn lại của câu không bị ảnh hưởng.
 

Span trong HTML
 

Các thuộc tính thường dùng với thẻ HTML span

Sức mạnh thực sự của thẻ HTML span đến từ việc kết hợp nó với các thuộc tính (attributes) trong thẻ mở. Đây là cách bạn cung cấp thông tin thêm cho thẻ span để CSS hoặc JavaScript có thể "nhận diện" và làm việc với nó.

1. Thuộc tính class

Class có lẽ là thuộc tính được dùng nhiều nhất với thẻ span trong HTML. Nó cho phép bạn gán một hoặc nhiều lớp CSS (CSS classes) cho phần tử span. Nhờ đó, bạn có thể áp dụng cùng một tập hợp các quy tắc định dạng (đã được định nghĩa trước trong CSS) cho bất kỳ thẻ span nào có cùng tên lớp này.

Cách dùng: Thêm thuộc tính class="..." vào thẻ mở. Giá trị của thuộc tính là tên lớp CSS (có thể là nhiều tên lớp cách nhau bằng khoảng trắng).

Ví dụ:

< p > Sản phẩm < span class = "ten-san-pham" > Điện thoại XYZ < / span > đang có giá < span class = "gia-khuyen-mai" > ưu đãi đặc biệt < / span> . < / p >.

< p > Lưu ý: < span class = "noi-bat can-chu-y" > Số lượng có hạn! < / span > < / p >.

Bạn có thể định nghĩa style cho .ten-san-pham, .gia-khuyen-mai, .noi-bat, .can-chu-y trong CSS và chúng sẽ được áp dụng cho các span tương ứng.

2. Thuộc tính id

Thuộc tính id cung cấp một định danh duy nhất cho một phần tử span cụ thể trên trang HTML. Điều này cực kỳ hữu ích khi bạn muốn nhắm mục tiêu chính xác chỉ một phần tử đó để áp dụng style riêng biệt hoặc thao tác bằng JavaScript.

Cách dùng: Thêm thuộc tính id="..." vào thẻ mở. Giá trị của id phải là duy nhất trên toàn bộ trang HTML và không được bắt đầu bằng số.

Ví dụ:

< p >Thông báo mới nhất: < span id = "urgent-alert" > Đường dây nóng tạm ngừng hoạt động. < / span > < / p >.

Bạn có thể dùng #urgent-alert trong CSS để cho style riêng hoặc dùng document.getElementById('urgent-alert') trong JavaScript để truy cập phần tử này.

3. Thuộc tính style

Thuộc tính style cho phép bạn viết trực tiếp các quy tắc CSS nội tuyến (inline CSS) vào thẻ mở span. Nghĩa là bạn định nghĩa style ngay tại chỗ thay vì tham chiếu đến một lớp hay ID trong file CSS riêng.

Cách dùng: Thêm thuộc tính style="..." vào thẻ mở. Giá trị của thuộc tính là các cặp thuộc tính CSS và giá trị, phân cách bởi dấu chấm phẩy ;.

Ví dụ:

< p > Từ này có màu < span style = "color: green; font-style: italic; " > xanh lá cây và in nghiêng < / span > . < / p >.

Lưu ý: Mặc dù đơn giản, việc lạm dụng thuộc tính style trực tiếp trong HTML làm cho mã khó quản lý (CSS bị phân tán), khó tái sử dụng, và làm tăng kích thước file HTML. Nó thường chỉ dùng cho các trường hợp style rất đặc thù, chỉ áp dụng một lần, hoặc để ghi đè (override) các style khác trong quá trình kiểm thử.

4. Các thuộc tính toàn cục

Ngoài các thuộc tính phổ biến cho mục đích styling/scripting, thẻ (giống như hầu hết các thẻ HTML khác) có thể sử dụng các thuộc tính toàn cục. Một số thuộc tính toàn cục hữu ích khi dùng với bao gồm:

- Thẻ title: Cung cấp thông tin bổ sung về phần tử, thường hiển thị dưới dạng tooltip khi người dùng di chuột qua. Ví dụ: < p > Di chuột qua đây: < span title = "Đây là tooltip" > Văn bản có tooltip < /span >.< /p >.

- Data-*: Các thuộc tính tùy chỉnh cho phép bạn lưu trữ dữ liệu riêng (custom data) trực tiếp trong HTML. Dữ liệu này có thể được truy cập dễ dàng bằng JavaScript. Rất hữu ích trong phát triển web hiện đại.

- Sản phẩm: Đây là một cách tổ chức nội dung sản phẩm trên website bằng cách kết hợp các thẻ HTML phổ biến. Thông thường, "thẻ sản phẩm" là một khối (block) đại diện cho một mặt hàng trong trang danh sách sản phẩm của website thương mại điện tử. < span class = "product-price" data-product-id="PL123456" data-currency = "VND"> 500.000 VNĐ < / span > < / p >.

- Lang: Chỉ định ngôn ngữ của nội dung bên trong. Hữu ích khi bạn có một vài từ hoặc cụm từ trong ngôn ngữ khác so với ngôn ngữ chính của trang. < p > Xin chào trong tiếng Pháp là < span lang = "fr" > Bonjour < / span> . < / p >.

- Dir: Chỉ định hướng văn bản (left-to-right hoặc right-to-left). Thẻ này rất hữu ích khi bạn chèn văn bản từ các ngôn ngữ có hướng viết khác.

- Role (Thuộc tính ARIA): Được sử dụng cho mục đích Hỗ trợ Tiếp cận (Accessibility). Mặc dù span không có ngữ nghĩa mặc định, đôi khi bạn có thể sử dụng thuộc tính role để xác định vai trò của nó cho các công cụ hỗ trợ (như trình đọc màn hình) hiểu rõ hơn, đặc biệt khi bạn dùng JavaScript để biến nó thành một phần tử tương tác.
 

Lệnh span trong HTML
 

Phân biệt thẻ span và div

Thẻ span tuy nhỏ nhưng là công cụ đắc lực giúp bạn kiểm soát và làm đẹp từng chi tiết nhỏ nhất trên website. Nếu như thẻ div là khung xương tạo cấu trúc, thì span chính là lớp màu sắc và tương tác giúp website thêm sống động, chuyên nghiệp và cá tính. 

 

Tiêu chí so sánh

Thẻ span

Thẻ div

Điểm giống nhau

- Đều là thẻ không mang ý nghĩa nội dung (non-semantic).

- Được dùng để bao bọc nội dung và áp dụng định dạng CSS hoặc thao tác với JavaScript.

- Không ảnh hưởng đến nội dung, nhưng có ảnh hưởng đến cách hiển thị và bố cục.

Điểm khác nhau

Loại phần tử

Inline (nội tuyến)

Block (khối)

Chiếm chiều ngang

Chỉ bao quanh nội dung thực tế

Chiếm toàn bộ chiều ngang trình duyệt

Dùng để làm gì?

Trang trí, định dạng một phần nhỏ của văn bản

Tổ chức bố cục, nhóm nhiều phần tử lớn

Có xuống dòng không?

Không tự động xuống dòng

Tự động xuống dòng

Mô hình nội dung chứa

Thường chỉ chứa Phrasing Content (nội dung theo ngữ/nội tuyến): văn bản thuần, < a >, < strong >, < img >, < span > lồng nhau,....

Có thể chứa Flow Content (nội dung luồng): bao gồm hầu hết các phần tử HTML, cả cấp khối (< p > , < h1 > , < div > , < ul >...) và nội tuyến (< span > , < a > , < img >...).

Ví dụ ứng dụng

Tô màu một từ trong đoạn văn

Tách từng section của trang web: header, body, footer

 

Ứng dụng thực tế của thẻ span trong thiết kế website

Trong một website được xây dựng tốt, thẻ HTML span được sử dụng khéo léo để kiểm soát và tương tác với các phần tử nội tuyến (inline elements) ở mức độ chi tiết nhất. Dưới đây là những ứng dụng phổ biến và hiệu quả của nó:

1. Tô màu và định dạng văn bản chi tiết

Đây là ứng dụng phổ biến nhất của span trong thiết kế web. Khi bạn muốn áp dụng một kiểu dáng (style) riêng biệt chỉ cho một từ, một cụm từ hoặc một vài ký tự trong một đoạn văn bản dài mà không làm ảnh hưởng đến cấu trúc dòng chảy của nó thì thẻ span HTML là lựa chọn hoàn hảo.

- Đổi màu chữ: Làm nổi bật một từ khóa quan trọng, tên riêng hoặc thông báo đặc biệt bằng màu sắc khác.

- Thay đổi kiểu/độ đậm nhạt của font: In đậm, in nghiêng, gạch chân chỉ một phần của câu.

- Thay đổi kích thước font: Làm cho một số từ nhỏ hoặc lớn hơn so với văn bản xung quanh để tạo hiệu ứng thị giác.

- Thêm màu nền (highlight): Giống như dùng bút highlight thật, bạn có thể làm nổi bật phần văn bản bằng màu nền.

- Áp dụng nhiều style cùng lúc: Bằng cách sử dụng thuộc tính class với nhiều tên lớp CSS, bạn có thể kết hợp nhiều style khác nhau cho cùng một đoạn text.

2. Tạo điểm nhấn tương tác và hiển thị dữ liệu động

Kết hợp HTML span với JavaScript, bạn có thể tạo ra các phần tử tương tác nhỏ hoặc hiển thị dữ liệu thay đổi ngay trong dòng văn bản.

- Cập nhật thông tin động: Hiển thị các giá trị thay đổi liên tục (ví dụ: bộ đếm thời gian, số lượng lượt xem, trạng thái trực tuyến) ngay trong văn bản mà không cần tạo một khối riêng.

- Thêm hiệu ứng tương tác (hover, click): Tạo hiệu ứng khi di chuột qua một từ hoặc biến một cụm từ thành "có thể click được" để thực hiện một hành động JavaScript nào đó (mặc dù thẻ < a > được ưu tiên cho các liên kết thực sự).

- Nhúng dữ liệu ẩn với data-* attributes: Lưu trữ các thông tin bổ sung (ví dụ: ID sản phẩm, loại trạng thái, mã code...) ngay trên phần tử span bằng các thuộc tính data-* để JavaScript có thể đọc và sử dụng sau này mà không làm ảnh hưởng đến layout web.

- Gắn label, badge, trạng thái cho sản phẩm: Rất nhiều website thương mại điện tử dùng thẻ span HTML để hiển thị nhãn như: Mới, Sale, Hết hàng, Hot,... Việc kết hợp CSS sẽ biến thẻ span thành một label bắt mắt, giúp tăng trải nghiệm người dùng.

3. Hỗ trợ hiển thị icons, ký hiệu đặc biệt

Trong thiết kế web hiện đại, việc chèn các biểu tượng nhỏ (từ font icon như font awesome, Google Icons hoặc SVG) ngay trong dòng văn bản là rất phổ biến, span thường được sử dụng để bao bọc các biểu tượng này.

- Căn chỉnh biểu tượng: Thẻ HTML span giúp bạn dễ dàng căn chỉnh biểu tượng (vertical-align) để chúng nằm thẳng hàng với dòng văn bản xung quanh.

- Định dạng biểu tượng: Áp dụng màu sắc, kích thước riêng cho biểu tượng thông qua CSS trên thẻ span chứa nó.

4. Hỗ trợ ngữ nghĩa

Mặc dù bản thân thẻ span HTML không có ngữ nghĩa, khi được sử dụng kết hợp với các thuộc tính như lang hoặc role (thuộc tính ARIA), nó có thể đóng vai trò hỗ trợ:

- Xác định ngôn ngữ khác: Đánh dấu một đoạn văn bản ngắn bằng ngôn ngữ khác so với ngôn ngữ chính của trang bằng thuộc tính lang giúp trình duyệt và công cụ hỗ trợ xử lý đúng.

- Hỗ trợ accessibility: Trong một số trường hợp đặc biệt khi JavaScript biến span thành một thành phần giao diện có vai trò nhất định (ví dụ: trạng thái live update), bạn có thể dùng thuộc tính role để thông báo cho trình đọc màn hình biết vai trò của phần tử đó.

- Định dạng thời gian, giá tiền, đơn vị: Thẻ span trong HTML giúp bao gói những phần nhỏ như giá, đơn vị đo, ký hiệu,... trong giao diện để dễ định dạng hoặc xử lý bằng JavaScript.
 

Thẻ span
 

Một số lưu ý khi sử dụng thẻ span trong HTML

Thẻ span trong HTML tuy nhỏ, nhưng nếu biết sử dụng đúng mục đích, bạn sẽ có trong tay một công cụ tuyệt vời để làm đẹp, làm sống động và tăng trải nghiệm người dùng trên website.

- Luôn ưu tiên thẻ HTML có ngữ nghĩa: Đây là lưu ý quan trọng nhất. Thẻ HTML span là non-semantic (vô nghĩa về mặt ngữ nghĩa). Nó không cho trình duyệt, công cụ tìm kiếm hay công nghệ hỗ trợ biết nội dung bên trong nó có ý nghĩa gì đặc biệt. Do đó, bạn chỉ nên sử dụng span khi không có thẻ HTML nào khác có ngữ nghĩa phù hợp hơn để đánh dấu phần nội dung đó.

- Thẻ span là inline, không tự xuống dòng: Điều này có nghĩa là nội dung nằm trong sẽ hiển thị liền kề với các phần tử khác. Nếu muốn tạo khối hoặc canh lề, bạn cần kết hợp với CSS (display: block; hoặc display: inline-block;).

- Chỉ nên dùng HTML span khi thật sự cần định dạng chi tiết nhỏ: Đừng lạm dụng span cho toàn bộ đoạn văn! Nó được sinh ra để bao bọc từng từ, cụm từ hoặc phần nội dung nhỏ trong dòng – nơi bạn muốn áp dụng màu sắc, hiệu ứng, xử lý JS,....

- Nên kết hợp với class hoặc id để dễ quản lý: Tránh việc viết style trực tiếp trong thẻ. Hãy tạo class riêng trong CSS để code sạch hơn, dễ chỉnh sửa và tái sử dụng.

- Không nên đặt thẻ block bên trong span: Do thẻ span trong HTML là inline, nên nếu bạn cho các thẻ như < div >, < p >, < section > vào trong nó, trình duyệt có thể xử lý sai hoặc lỗi giao diện.

- Có thể dùng span để xử lý nội dung động bằng JavaScript: Rất phù hợp để cập nhật các đoạn nội dung nhỏ như tên người dùng, số lượng giỏ hàng, trạng thái,....
 

Span tag
 

Qua nội dung Phương Nam Vina vừa chia sẻ, có thể thấy rằng thẻ span trong HTML tuy nhỏ bé, đơn giản nhưng lại là công cụ linh hoạt giúp bạn kiểm soát, trang trí và tối ưu hóa từng chi tiết nội dung trên website. Khi biết tận dụng đúng cách, thẻ span không chỉ giúp mã HTML gọn gàng hơn mà còn mở ra vô vàn khả năng sáng tạo trong thiết kế giao diện. Đừng ngần ngại thực hành và thử nghiệm với span HTML trong các dự án của mình. Bạn sẽ sớm nhận ra đây là một trong những công cụ không thể thiếu trong việc xây dựng cấu trúc và trình bày nội dung trên website.

Tham khảo thêm:

icon thiết kế website Thẻ H1 là gì? Vai trò và cách sử dụng thẻ H1 trong SEO

icon thiết kế website Canonical là gì? Hướng dẫn sử dụng thẻ canonical hiệu quả

icon thiết kế website Cấu trúc website là gì? Cách xây dựng cấu trúc website tối ưu

Bài viết mới nhất

Google Keyword Planner là gì? Tính năng chính và cách sử dụng

Google Keyword Planner là gì? Tính năng chính và cách sử dụng

Google Keyword Planner giúp doanh nghiệp ra quyết định từ dữ liệu thực tế, tối ưu ngân sách marketing và nâng cao hiệu quả tiếp cận khách hàng.

Thẻ Title là gì? Bí quyết tối ưu thẻ Title kéo ngàn traffic

Thẻ Title là gì? Bí quyết tối ưu thẻ Title kéo ngàn traffic

Bật mí bí quyết tối ưu thẻ meta Title chuẩn SEO giúp tăng thứ hạng tìm kiếm, thu hút hàng ngàn traffic chất lượng mỗi tháng cho website hiệu quả.

Thẻ H1 là gì? Vai trò và cách sử dụng thẻ H1 trong SEO

Thẻ H1 là gì? Vai trò và cách sử dụng thẻ H1 trong SEO

Thẻ H1 là yếu tố quan trọng trong SEO giúp công cụ tìm kiếm hiểu rõ nội dung trang và cải thiện trải nghiệm người dùng, tối ưu thẻ H1 hiệu quả.

 
IP website là gì? Cách xem địa chỉ IP của website nhanh chóng

IP website là gì? Cách xem địa chỉ IP của website nhanh chóng

Trên Internet, mỗi website giống như một ngôi nhà và để đến đúng địa chỉ đó, bạn cần có một “tọa độ” chính xác thường được gọi là IP website.

Div là gì? Ứng dụng của thẻ div HTML khi thiết kế website

Div là gì? Ứng dụng của thẻ div HTML khi thiết kế website

Thẻ div HTML tuy không mang ý nghĩa nội dung cụ thể nhưng lại được dùng để nhóm phần tử thành khối giúp dễ bố trí, quản lý và áp dụng kiểu dáng CSS.

Ngôn ngữ máy là gì? Giải mã cốt lõi của chương trình máy tính

Ngôn ngữ máy là gì? Giải mã cốt lõi của chương trình máy tính

Ngôn ngữ máy là ngôn ngữ cấp thấp nhất dùng hệ nhị phân (0 và 1) giúp phần cứng giao tiếp với phần mềm, đóng vai trò quan trọng trong lập trình.

zalo