該解決方案是完全未予以重視的+
組合子。
有了這個,我們可以給某個選擇器一個樣式,然後重置相同選擇器的樣式,如果它直接在之後再次出現。換句話說,只給這個類的第一個元素賦予樣式。
.tags a { display: block; }
.tags a[href*="genre"] { margin-top: 1rem; }
.tags a[href*="genre"] + a[href*="genre"] { margin-top: 0; }
.tags a[href*="topic"] { margin-top: 1rem; }
.tags a[href*="topic"] + a[href*="topic"] { margin-top: 0; }
<div class="tags">
<h3>Tags</h3>
<a href="https://awesomechristianmusic.com/tag/artist-glad/" rel="tag">Artist: Glad</a>
<a href="https://awesomechristianmusic.com/tag/genre-a-capella/" rel="tag">Genre: A Capella</a>
<a href="https://awesomechristianmusic.com/tag/genre-hymns/" rel="tag">Genre: Hymns</a>
<a href="https://awesomechristianmusic.com/tag/topic-faith/" rel="tag">Topic: Faith</a>
<a href="https://awesomechristianmusic.com/tag/topic-god/" rel="tag">Topic: God</a>
<a href="https://awesomechristianmusic.com/tag/topic-prayer/" rel="tag">Topic: Prayer</a>
</div>
或者,如果你確信不會有任何東西,除了元素的DIV一樣,你可以縮短這樣的CSS的東西:
.tags a {display: block;}
.tags a:not([href*="genre"]) + a[href*="genre"],
.tags a:not([href*="topic"]) + a[href*="topic"] {margin-top: 1rem;}
你不能使用:最後一種類型。您將需要修改您的HTML以適合您的使用情況。就像將每種類型的元素放入其自己的容器中,然後爲每個容器的最後一個子元素設計樣式。 – BoltClock
或者你可以保持HTML不變,並使用'+'combinator ... –