Псевдокласс отрицания CSS: not () для родительских / предковых элементов

Это сводит меня с ума:

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 . Кто-нибудь?

64
задан BoltClock 22 February 2016 в 10:19
поделиться