Signup/Sign In
Ask Question
Not satisfied by the Answer? Still looking for a better solution?

CSS selector for “foo that contains bar”?

Is there a way to make a CSS Selector that matches the following?
All OBJECT elements
which have a PARAM element inside of them


The selector
OBJECT PARAM


doesn't work, as it matches the PARAM, not the OBJECT. I'd like to apply { display:none } to the objects; it's useless to apply that to the PARAMs.

(I'm aware I could pull this off with jQuery - $("object param").closest("object") - and VanillaJS - document.querySelector("object param").closest("object") - but I'm trying to create CSS rules on a page.)
by

2 Answers

rahul07
No, what you are looking for would be called a parent selector. CSS has none; they have been proposed multiple times but I know of no existing or forthcoming standard including them. You are correct that you would need to use something like jQuery or use additional class annotations to achieve the effect you want.
sandhya6gczb
The only thing that comes even close is the :contains pseudo class in CSS3, but that only selects textual content, not tags or elements, so you're out of luck.

A simpler way to select a parent with specific children in jQuery can be written as (with :has()):

$('#parent:has(#child)');

Login / Signup to Answer the Question.