it-swarm.com.ru

CSS селектор для "foo, который содержит bar"?

Возможный дубликат:
Есть ли родительский селектор CSS?

Есть ли способ сделать селектор CSS, который соответствует следующему?

All OBJECT elements
  which have a PARAM element inside of them

Селектор

OBJECT PARAM

не работает, так как соответствует ПАРАМ, а не ОБЪЕКТУ. Я хотел бы применить {display: none} к объектам; бесполезно применять это к ПАРАМам.

(Я знаю, что могу справиться с этим с помощью jQuery - $("object param").closest("object") - и VanillaJS - document.querySelector("object param").closest("object") - но я пытаюсь создать правила CSS на странице.)

370
Michael Gundlach

Нет, то, что вы ищете, будет называться родительским селектором . CSS не имеет ни одного; они были предложены несколько раз, но я не знаю ни одного существующего или будущего стандарта, включая их. Вы правы, что вам нужно будет использовать что-то вроде jQuery или использовать дополнительные аннотации классов для достижения желаемого эффекта.

Вот несколько похожих вопросов с похожими результатами:

260
Michael Greene

Единственное, что даже близко подходит, это псевдо-класс :contains в CSS3, но он выбирает только текстовый контент, а не теги или элементы, так что вам не повезло.

Более простой способ выбрать родителя с конкретными потомками в jQuery можно записать как (с :has() ):

$('#parent:has(#child)');
100
Tatu Ulmanen