Câu trả lời:
.classA.classB
đề cập đến một phần tử có cả hai lớp A và B ( class="classA classB"
); trong khi .classA .classB
đề cập đến một phần tử có class="classB"
hậu duệ từ một phần tử với class="classA"
.
Chỉnh sửa: Thông số để tham khảo: Bộ chọn thuộc tính (Xem phần 5.8.3 Bộ chọn lớp)
Kiểu như thế này phổ biến hơn nhiều và sẽ nhắm mục tiêu đến bất kỳ loại phần tử nào của lớp "classB" được lồng bên trong bất kỳ loại phần tử nào của lớp "classA".
.classA .classB {
border: 1px solid; }
Ví dụ, nó sẽ hoạt động trên:
<div class="classA">
<p class="classB">asdf</p>
</div>
Tuy nhiên, phần tử này nhắm mục tiêu đến bất kỳ loại phần tử nào vừa là lớp "classA", vừa là lớp "classB". Kiểu này ít xuất hiện hơn nhưng vẫn hữu ích trong một số trường hợp.
.classA.classB {
border: 1px solid; }
Điều này sẽ áp dụng cho ví dụ này:
<p class="classA classB">asdf</p>
Tuy nhiên, nó sẽ không ảnh hưởng đến những điều sau:
<p class="classA">fail</p>
<p class="classB">fail</p>
(Lưu ý rằng khi một phần tử HTML có nhiều lớp, chúng được phân tách bằng dấu cách.)
.classA.classB
nó có nghĩa là các phần tử có cả hai tên lớp sẽ được chọn trong khi .classA .classB
có nghĩa là phần tử có tên lớp classB
bên trong classA
sẽ chỉ được chọn.