画像ギャラリー用の単純な HTML に取り組んでいます。ギャラリーの各行には、2、3、または 4 つの画像を含めることができます。(2 つの画像の行では、各画像要素には という名前が付けられtype-2
、同じことがtype-3
およびにも当てはまりtype-4
ます。)
ここで、各行の最後の要素を選択して、カスタム マージンを設定したいと考えています。私のHTMLは次のようなものです:
<div id="content">
<div class="type-2"></div>
<div class="type-2"></div> <!-- I want this, 2n+0 of type-2 -->
<div class="type-3"></div>
<div class="type-3"></div>
<div class="type-3"></div> <!-- this, 3n+0 of type-3 -->
<div class="type-4"></div>
<div class="type-4"></div>
<div class="type-4"></div>
<div class="type-4"></div> <!-- this, 4n+0 of type-4 -->
<div class="type-2"></div>
<div class="type-2"></div> <!-- this -->
<div class="type-3"></div>
<div class="type-3"></div>
<div class="type-3"></div> <!-- this -->
<div class="type-4"></div>
<div class="type-4"></div>
<div class="type-4"></div>
<div class="type-4"></div> <!-- this -->
</div>
次の CSS は機能すると思いますが、機能しませんでした。
.type-2:nth-of-type(2n+0) {margin-right:0;}
.type-3:nth-of-type(3n+0) {margin-right:0;}
.type-4:nth-of-type(4n+0) {margin-right:0;}
この CSS が選択するものは次のとおりです。
<div id="content">
<div class="type-2"></div>
<div class="type-2"></div> <!-- selected by .type-2:nth-of-type(2n+0) -->
<div class="type-3"></div> <!-- selected by .type-3:nth-of-type(3n+0) -->
<div class="type-3"></div>
<div class="type-3"></div>
<div class="type-4"></div>
<div class="type-4"></div>
<div class="type-4"></div> <!-- selected by .type-4:nth-of-type(4n+0) -->
<div class="type-4"></div>
<div class="type-2"></div> <!-- selected by .type-2:nth-of-type(2n+0) -->
<div class="type-2"></div>
<div class="type-3"></div> <!-- selected by .type-3:nth-of-type(3n+0) -->
<div class="type-3"></div>
<div class="type-3"></div>
<div class="type-4"></div>
<div class="type-4"></div> <!-- selected by .type-4:nth-of-type(4n+0) -->
<div class="type-4"></div>
<div class="type-4"></div>
</div>
HTML を編集して目的を達成することはできますが、好奇心から、このための CSS はありますか?
編集:この質問は、要素ではなくクラスに適用できるかどうかnth-child
を尋ねる質問の複製のように見えるかもしれません。nth-of-type
私はすでに答えがノーであることを知っていました。私が本当に求めているのは、それに対する純粋な CSS ソリューション/ハックであり、選択された答えはまさにそれを行いました。