Gán tên lớp rồi viết bộ chọn có dấu chấm
class giúp nhóm nhiều phần tử để định dạng chung. HTML dùng class="can_doc"; CSS dùng .can_doc để chọn các phần tử thuộc lớp ấy. Một lớp có thể gán cho nhiều phần tử, kể cả khác tên thẻ.
Một phần tử có thể thuộc nhiều lớp: class="can_doc noi_bat" gồm hai tên lớp can_doc và noi_bat, cách nhau bởi dấu cách. Dấu cách phân tách các tên, không phải một phần của tên lớp.
Trong bài, đặt tên bằng chữ thường, bắt đầu bằng chữ cái, có thể dùng gạch dưới như can_doc để viết bộ chọn trực tiếp, dễ đọc. Tên lớp phân biệt hoa–thường: Can_doc khác can_doc.
Theo dõi A, B, C và D
```html
<p class="can_doc">A</p>
<p class="can_doc noi_bat">B</p>
<div class="can_doc">
<p class="noi_bat">C</p>
</div>
<p class="Can_doc">D</p>
```
```css
.can_doc { color: navy; }
p.can_doc { font-weight: bold; }
.can_doc.noi_bat { background-color: yellow; }
.can_doc .noi_bat { border: 2px solid teal; }
```
.can_doc chọn p A, p B và div chứa C. Vì color có thể kế thừa, chữ C cũng có thể nhận navy từ div; không vì thế mà p C tự thuộc lớp can_doc.
p.can_doc chọn A, B nên hai đoạn đậm. .can_doc.noi_bat chọn phần tử có **cả hai lớp**, ở đây là B, nên B có nền vàng. .can_doc .noi_bat có dấu cách, chọn phần tử lớp noi_bat nằm trong phần tử lớp can_doc: ở đây là C, nên C có viền teal.
D dùng Can_doc với C viết hoa nên không khớp .can_doc.
Bài luyện
class="can_doc noi_bat" gán cho phần tử bao nhiêu lớp?
Dấu cách phân tách các tên lớp.
Đúng. Có hai tên lớp.
Một phần tử được thuộc nhiều lớp.
Đây là thuộc tính class, không phải id.
Lời giải
Trong class, các tên lớp được phân tách bằng dấu cách. Vì vậy phần tử thuộc lớp can_doc và lớp noi_bat; nó không mang một tên lớp duy nhất có dấu cách.
Bài luyện
Trong mẫu A–B–C–D, .can_doc.noi_bat chọn đoạn nào?
A không có lớp noi_bat.
C có noi_bat nhưng không có can_doc trên chính p.
Đúng. B đồng thời thuộc hai lớp.
D có tên lớp Can_doc khác hoa–thường.
Lời giải
Hai tên lớp nối liền bằng dấu chấm yêu cầu cùng một phần tử có cả hai lớp. B có class="can_doc noi_bat" nên khớp; C chỉ có noi_bat, dù có tổ tiên thuộc can_doc.
Bài luyện
Trong cùng mẫu, .can_doc .noi_bat chọn gì?
Đúng. Dấu cách đặt quan hệ con cháu.
Hai lớp trên cùng B không tạo quan hệ con cháu.
Tên lớp phân biệt hoa–thường.
Bộ chọn vẫn yêu cầu các tên lớp cụ thể.
Lời giải
Dấu cách yêu cầu một phần tử noi_bat nằm trong một phần tử can_doc. p C ở trong div.can_doc nên khớp. p B có cả hai lớp nhưng không nằm trong phần tử can_doc khác trong mẫu nên không khớp chuỗi này.
Bài luyện
Bộ chọn nào chọn các p thuộc lớp can_doc?
Đây là quan hệ con cháu với tên phần tử can_doc.
Dấu # yêu cầu id, không phải lớp.
Đây là hai lớp p và can_doc, không yêu cầu tên thẻ p.
Đúng. Ghép tên thẻ p với lớp .can_doc.
Lời giải
p.can_doc kết hợp tên phần tử p và yêu cầu thuộc lớp can_doc. Khoảng trắng đặt quan hệ con cháu, # đặt mã định danh; .p lại là tên lớp p.
Đang học