Ich habe Artikel nebeneinander schweben, die 25% breit sind. Ich füge ein clear:both
nach jedem vierten Element hinzu. Ich muss jedoch einen grafischen Schnitt einfügen zwischen den Elementen einfügen. Und es muss innerhalb der <ul>
sein. Um gültig zu sein, habe ich den "section-break" (das erste li-Item in der darunterliegenden Probe) in eine <li>
verpackt.CSS: nth-of-type() und: nicht() 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>
Ich will jedes vierte Element ein Zeilenumbruch sein, damit ich ...
ul li:nth-of-type(4n+1) { clear: both; }
Allerdings möchte ich die li.year
von diesem Verhalten nicht betroffen sein, damit ich diese
ul li:not(.year):nth-of-type(4n+1) { clear: both; }
versucht
Im Moment ist die letzte <li>
in meinem obigen Beispielcode in die nächste Zeile floated, aber das sollte nicht passieren, da die erste <li>
nicht eine der Floate ist d Artikel, enthält jedoch eine Überschrift.
Ist es möglich, die :not
und nth-of-type()
Selektor aufeinander zu stapeln?
Danke, das funktioniert perfekt - auch dachte, ich verstehe es nicht. Irgendeine Erklärung dazu? – matt
@matt ehrlich, ich habe keine Ahnung. Startet den MDN Doc für etwa 5 Minuten, und ich bin immer noch verwirrt. Das macht keinen Sinn. https://developer.mozilla.org/en-US/docs/CSS/clear – McGarnagle
Eigentlich scheint das Problem in der Auswahl stattdessen zu sein. Beachten Sie, dass Sie "clear: left" auf ": nth-of-type (4n + 2)" im Gegensatz zu ": nth-of-type (4n + 1)" im Original anwenden; Ihr 'clear: right' auf dem ursprünglichen Selektor hat keine Auswirkung, da keines der Elemente nach rechts verschoben wird. – BoltClock