Это сводит меня с ума:
HTML:
<div><h1>Hello World!</h1></div>
CSS
*:not(div) h1 { color: #900; }
Не читает ли это: "Выберите все элементы h1
, у которых есть предок, который не является элементом div
...?" Таким образом, "Hello World!" не должен быть окрашен в красный цвет, но он все еще есть.
Для вышеуказанной разметки добавление дочернего комбинатора работает:
*:not(div) > h1 { color: #900; }
Но не влияет на элемент h1
, если он не является дочерним элементом элемента div
. Например:
<div><article><h1>Hello World!</h1></article></div>
Вот почему я хотел бы указать элемент h1
как потомок, а не дочерний элемент div
. Кто-нибудь?