Cập nhật vào 25/02
Ở bài trước chúng ta đã được học qua về id, class và lợi ích của nó trong việc nhóm, đánh dấu phần tử để có thể dùng CSS để tạo ra các kiểu trình bày đặc biệt. Trong bài học này chúng ta sẽ cùng tìm hiểu về 2 thẻ <span> và <div> trong HTML và xem chúng có lợi ích gì cho công việc viết CSS của chúng ta.
2 thẻ <span> và <div> có tác dụng nhóm các thẻ khác lại hoặc chứa một đoạn văn bản. Cả hai thẻ này được sử dụng khá nhiều để định dạng cho một đoạn hay một phần nào đó trong bài viết.
1. Nhóm phần tử với thẻ <span>:
Thẻ <span> trong HTML thật ra là một thẻ trung hòa, nó không thêm hay bớt bất cứ một thứ gì vào một tài liệu HTML cả. Nhưng chính nhờ tính chất trung hòa này mà nó lại là một công cụ đánh dấu tuyệt vời để qua đó chúng ta có thể viết CSS định dạng cho các phần tử mong muốn. Ví dụ: Chúng ta có đoạn HTML sau trích dẫn câu nói của chủ tịch Hồ Chí Minh
<p>Không có gì quý hơn độc lập, tự do.</p>
Yêu cầu ở đây là chúng ta hãy dùng CSS tô đậm 2 từ độc lập, tự do. Để giải quyết vấn đề này, chúng ta sẽ thêm thẻ <span> vào đoạn HTML như sau:
<p>Không có gì quý hơn <span class=”nhanmanh”>độc lập</span>, <span class=”nhanmanh”>tự do</span>.
Và bây giờ chúng ta có thể viết CSS cho yêu cầu trên:
.nhanmanh { font-weight:bold }
Rất đơn giản phải không nào.
2. Nhóm khối phần tử với thẻ <div>:
Cũng như <span>, <div> cũng là một thẻ trung hòa và được thêm vào tài liệu HTML với mục đính nhóm các phần tử lại cho mục đích định dạng bằng CSS. Tuy nhiên, điểm khác biệt là <span> dùng để nhóm một khối phần tử trong khi đó <div> có thể nhóm một hoặc nhiều khối phần tử.
Trở lại ví dụ về danh sách tỉnh, thành trong phần class bài trước chúng ta sẽ giải quyết vấn đề bằng cách nhóm các phần tử với <div> như sau:
<p>Danh Sách Các Tỉnh, Thành Phố Việt Nam:</p>
<ul>
<div id=”tp”>
<li>Hà Nội</li>
<li>TP. Hồ Chí Minh</li>
<li>Đà Nẵng</li>
</div>
<div id=”tinh”>
<li>Thừa Thiên Huế</li>
<li>Khánh Hòa</li>
<li>Quãng Ninh</li>
<li>Tiền Giang</li>
</div>
</ul>
Và đoạn CSS cho mục đích này sẽ là:
#tp { color:#FF0000 }
#tinh { color:0000FF }