Есть ли селектор CSS для элемента без какого-либо класса?
Есть ли селектор CSS для элемента без какого-либо класса? Например, в HTML
<section>Section A</section>
<section class="special">Section B</section>
<section class="">Section C</section>
Я хотел бы выбрать раздел A (или, возможно, раздел A и раздел C, это не имеет значения), произнеся что-то вроде
section:not(.*) { color: gray }
Я понимаю, что я могу определить его в разделе и reset обратно во всех определенных классах, например, в
section { color: gray }
section.special { color: black }
но это не то, что я хочу, потому что он не очень управляем, когда стили становятся сложными, а в некоторых случаях трудно выполнить "reset" (конечно, не в этом упрощенном примере).
Ответы
Ответ 1
С помощью section:not([class])
вы выбираете каждый раздел без атрибута класса. К сожалению, он не будет выбирать те разделы с пустым значением атрибута класса. Поэтому, кроме того, мы должны исключить следующие разделы:
section:not([class]) { /* every section without class - but won't select Section C */
color: red;
}
section[class=""] { /* selects only Section C */
font-weight: bold;
}
<section>Section A</section>
<section class="special">Section B</section>
<section class="">Section C</section>