Tôi có một bảng với một số hàng:Sự khác biệt giữa quy tắc CSS `.class1.class2` và` .class1 .class2` là gì?
<table>
<tr class="even"><td>tr0</td></tr>
<tr><td>tr1</td></tr>
<tr class="even"><td>tr2</td></tr>
</table>
Tôi có một quy tắc CSS (rule1) cho chẵn:
.even{
background-color: blue;
}
tôi có quy tắc khác (rule2) cho ghi đè các bgcolor của bất kỳ hàng :
.override, .override.even{
background-color: green;
}
điều lạ là trong IE9 tất cả even
hàng (không có lớp override
) là màu xanh lá cây!
công cụ phát triển cho thấy điều này cho even
hàng:
Trong hai điều kiện IE thực hiện công việc một cách chính xác:
Nếu tôi viết lại rule2 như thế này:
.override, .override .even{ ... }
Nếu tôi chuyển rule2 ở trên quy tắc1:
.override, .override.even{ ... }
.even { ... }
Câu hỏi là sự khác biệt giữa .override.even
và .override .even
là gì?
EDIT:
Cảm ơn bạn đã trả lời. Một câu hỏi khác mà tôi quên hỏi là tại sao IE cho thấy các hàng even
màu xanh lá cây?
.override .even = Chọn bất kỳ phần tử nào có lớp "thậm chí" là phần tử của bất kỳ phần tử nào có lớp "ghi đè" – Jawad
.override.even = Chọn bất kỳ phần tử nào có lớp "ghi đè "hoặc/và" thậm chí " – Jawad
Bạn cần phải có một số mã xung đột ở đâu đó. Khi tôi kiểm tra nó, các hàng vẫn còn màu xanh: http://jsfiddle.net/Guffa/e3w4q/ – Guffa