Nếu không hỗ trợ IE7-8, bạn có thể sử dụng :not()
CSS selector.
Nhưng nếu bạn cần hỗ trợ IE7 +, có thể vẫn là trường hợp có một mẹo nhỏ bạn có thể sử dụng và thường mang lại cho bạn khá xa. Một thực tế ít được biết đến là bộ chọn psuedo :first-child
thực sự hoạt động trong IE7 + (không phải là :last-child
) như là some other css selectors và điều này làm cho các công cụ như thêm lề thẳng đứng trong bố cục nổi theo chiều ngang có thể.
Imagine html này:
<ul>
<li>Item #1</li>
<li>Item #2</li>
<li>Item #3</li>
<li>Item #4</li>
</ul>
Và đây là một số CSS:
/* General reset */
ul, li { list-type: none; margin: 0; padding: 0; }
/* Make horizontal */
ul > li { float: left; }
Vì vậy, bây giờ tất cả các mặt hàng danh sách là theo chiều ngang bên cạnh nhau, và bây giờ chúng tôi muốn thêm một lề trong GIỮA tất cả các mục nhưng không ở bên phải hoặc bên trái, chúng tôi có thể làm điều này trong css:
/* General reset */
ul, li { list-type: none; margin: 0; padding: 0; }
/* Make horizontal */
ul > li { float: left; margin-left: 10px; }
ul > li:first-child { margin-left: 0; }
Điều này thường bao gồm s 95% các trường hợp mà tôi muốn một cái gì đó độc đáo, sau đó phần còn lại của 'forgotten' selectors cover another few percent, sau đó bạn cần phải thêm một số lớp học mà thường không phải là một nút cổ chai nào trong phần phụ trợ của trang.
Tôi nghĩ rằng giải pháp phổ biến hơn là để áp dụng phong cách để mọi thứ sau đó loại bỏ những người không mong muốn bằng cách chọn đầu tiên và cuối cùng làm như vậy. – kinakuta
Sử dụng bộ chọn ': not': http://jsfiddle.net/FGfmj/ –