Tôi có các bài viết nổi bên cạnh rộng 25%. Tôi đang thêm clear:both
sau mỗi phần tử thứ tư. Tuy nhiên tôi cần phải chèn một phần-break đồ họa inbetween các yếu tố. Và nó phải nằm trong số <ul>
. Để có giá trị, tôi đã bao bọc "phần-break" (mục li đầu tiên trong mẫu bên dưới) thành một số <li>
.CSS: nth-of-type() và: not() selector?
<ul>
<li class="year"><h1>THIS IS A SECTION Break and 100% wide</h1></li>
<li>This is a article and only 25% wide</li>
<li>This is a article and only 25% wide</li>
<li>This is a article and only 25% wide</li>
<li>This is a article and only 25% wide</li>
</ul>
Tôi muốn mọi yếu tố thứ tư là một ngắt dòng vì vậy tôi sử dụng ...
ul li:nth-of-type(4n+1) { clear: both; }
Tuy nhiên tôi muốn li.year
không bị ảnh hưởng bởi hành vi này vì vậy tôi cố gắng này
ul li:not(.year):nth-of-type(4n+1) { clear: both; }
Ngay bây giờ cuối cùng <li>
trong mã mẫu của tôi ở trên được thả nổi vào dòng tiếp theo nhưng điều đó không nên xảy ra kể từ khi <li>
đầu tiên không phải là một trong các phao d bài viết nhưng chứa tiêu đề.
Có thể xếp bộ chọn :not
và nth-of-type()
lên nhau không?
Cảm ơn bạn, làm việc này một cách hoàn hảo - thậm chí nghĩ rằng tôi không nhận được nó. Bất kỳ lời giải thích về điều đó? – matt
@matt một cách trung thực, tôi không biết. Nhìn chằm chằm vào tài liệu MDN trong 5 phút, và tôi vẫn còn bối rối. Không có nghĩa lý gì. https://developer.mozilla.org/en-US/docs/CSS/clear – McGarnagle
Thực ra, vấn đề dường như nằm trong bộ chọn thay thế. Lưu ý rằng bạn đang áp dụng 'clear: left' thành': nnth-of-type (4n + 2) 'trái ngược với': nnth-of-type (4n + 1) 'trong bản gốc; 'clear: right' của bạn trên bộ chọn gốc không có hiệu lực vì không có phần tử nào đang được thả sang bên phải. – BoltClock