Я работаю над простым HTML для галереи изображений. Каждая строка галереи может иметь 2, 3 или 4 изображения. (В строке с двумя изображениями каждый элемент изображения имеет имя 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/взломать его, и выбранный ответ сделал именно это.