Я заядлый пользователь x-of-type
семейства CSS псевдо-классов:Неожиданное поведение из: п-го из-типа (п + 1)
:first-of-type
:last-of-type
:nth-of-type
:nth-last-of-type
Я обычно довольно разбираюсь в обеспечении того, чтобы любая серия подобных элементы (элементы списка и т. д.) отображаются точно так, как я желаю.
В последний час, однако, я застрял на том, как добиться следующего результата с помощью одного объявления стиля:
- Пункт 1 имеет
border-bottom
- Пункт 2 имеет
border-bottom
- Пункт 3 имеет
border-bottom
- Пункт 4 (последний пункт) не имеет
border-bottom
я достиг того, что мне нужно, используя:
.item {
border-bottom:6px solid rgb(227,227,227);
}
.item:last-of-type {
border-bottom:none;
}
но для краткости, я бы до сих пор предпочитают, чтобы достичь того же результата с одной декларации.
Вопрос:
Почему не будет
.item:nth-of-type(n-1) {
border-bottom:6px solid rgb(227,227,227);
}
или
.item:nth-last-of-type(n+1) {
border-bottom:6px solid rgb(227,227,227);
}
работа?
Это потому, что n
- это просто бесконечный список чисел, включая числа до и после количества целевых элементов на странице?
Если да, то как я могу объявить «Все, кроме последнего элемента» в одной декларации?
(А извинения заранее, если это что-то действительно очевидно, и я просто не заметил его ...)
... Добавлено
Вот HTML я работаю с:
<aside>
<img src="" title="" alt="" />
<span class="something-else">Blah</span>
<span class="item">Item Details</span>
<img src="" title="" alt="" />
<span class="something-else">Blah</span>
<span class="item">Item Details</span>
<img src="" title="" alt="" />
<span class="something-else">Blah</span>
<span class="item">Item Details</span>
<img src="" title="" alt="" />
<span class="something-else">Blah</span>
<span class="item">Item Details</span>
</aside>
Селектор классов вводит в заблуждение; вам может потребоваться добавить или заменить его селектором типов, чтобы было ясно, что вы не сбиваете с толку: * - типа с гипотетическим: * - классным селектором - или еще лучше, замените его на: * - child , – BoltClock
Псевдокласс класса ': nth-type' выбирает элементы, а не классы элементов, поэтому добавление класса, подобного' .item' перед ним, похоже на добавление фильтра, который будет применяться только в том случае, если последний из тип, который у вас есть, имеет этот класс. Вы должны опубликовать HTML-адрес, на который настроен таргетинг, чтобы мы могли видеть, с чем вы работаете. – j08691
Ahhhh ... так что вы не можете применить 'x-of-type' к _classes_? Это может объяснить, почему я почесывал голову в течение последнего часа ... – Rounin