Учитывая этот неупорядоченный список:CSS: Выбрать все элементы первого поколения (детей), но не внуки
<ul>
<li>Level One Item One
<ul>
<li>Level One Item One</li>
<li>Level One Item Two</li>
</ul>
</li>
<li>Level One Item Two
<ul>
<li>Level Two Item One</li>
<li>Level Two Item Two</li>
</ul>
</li>
</ul>
... Я хотел бы применить стиль для всех непосредственных <li>
детей с <ul>
, не имея этот стиль применяется к вложенным элементам списка.
Я думал, что этот селектор CSS будет делать трюк, но это не имеет никакого эффекта:
ul>li:not(li>ul>li) {
border: 1px solid red;
}
Вот скрипка:
Шутит, вот скрипка: https://jsfiddle.net/nz5fdnd0/1/
Вот изображение желаемого результата:
Желаемое решение позволит избежать использования явных атрибутов класса или идентификатора в HTML.
Вы также можете поместить класс на 'ul' вы хотите предназначаться и сделать' ул.myclass> li' –
Несмотря на то, что _ «Желаемое решение позволило бы избежать использования явных атрибутов класса или идентификатора в HTML» _ Я бы пошел с классом, а не вводил закрывающий 'div' только для целей стиля. Однако, если внешняя 'ul' является _already_ (всегда) в div ... –
Да, это было бы проще, но источник генерируется из Markdown, поэтому трудно добавить класс. Добавление контейнера div тривиально, поэтому я пойду с этим. – mysmallidea