web-dev-qa-db-fra.com

Sélecteur CSS pour "foo qui contient la barre"?

Duplicate possible:
Y a-t-il un sélecteur de parent CSS?

Existe-t-il un moyen de créer un sélecteur CSS correspondant aux éléments suivants?

All OBJECT elements
  which have a PARAM element inside of them

Le sélecteur

OBJECT PARAM

ne fonctionne pas, car il correspond à PARAM, pas à OBJECT. J'aimerais appliquer {display: none} aux objets; il est inutile d'appliquer cela aux PARAM.

(Je sais que je pourrais y arriver avec jQuery - $("object param").closest("object") - et VanillaJS - document.querySelector("object param").closest("object") - mais j'essaie de créer des règles CSS sur une page.)

378
Michael Gundlach

Non, ce que vous recherchez serait appelé un sélecteur de parent . CSS n'en a pas; elles ont été proposées à plusieurs reprises mais je ne connais aucune norme existante ou à venir les incluant. Vous avez raison de dire que vous auriez besoin d'utiliser quelque chose comme jQuery ou d'utiliser des annotations de classe supplémentaires pour obtenir l'effet souhaité.

Voici quelques questions similaires avec des résultats similaires:

267
Michael Greene

La seule chose qui se rapproche encore est la pseudo-classe :contains en CSS3, mais elle ne sélectionne que le contenu textuel, et non les balises ou les éléments, vous n'avez donc pas de chance.

Un moyen plus simple de sélectionner un parent avec des enfants spécifiques dans jQuery peut être écrit comme suit (avec :has() ):

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