- From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
- Date: Wed, 21 Dec 2005 23:38:34 +1100
- To: Jesper Hermansen <hermandsen@vip.cybercity.dk>
- CC: www-style <www-style@w3.org>
Jesper Hermansen wrote: > A quick example. > Say I want to show/hide an html-<img>, when hovering different links. > > I'm using a slash (/) for doing a new selector (maybe someone can think > of a better character). > > Markup: > <img id="logo" src="foo/bar.png" alt="foobar" /> > <a href="http://www.google.com/">Google</a> > <a href="/examples/">Site examples</a> > <a href="http://w3.org/">W3</a> > > CSS: > > #logo { > visibility: hidden; > } > > a[href^="http://"]:hover / #logo { > visibility: visible; > } I'm not sure I understand this properly, there's two possible interpretations I can think of. The first, which I interpret from the sample code and which I'm sure has been discussed before, is like the opposite of the + and ~ sibling combinators. This would suffer from many of the same problems of parent selectors. > The selector above would first evaluate hover on the link and, if true, > continue to the #logo-selector, and apply the visibility-style. The second which I gather from this description is like putting a condition which must evaluate to true before the actual selector will be matched. i.e. selector1 / selector2 { ... } is equivalent to this pseudo-code algorithm. IF selector1 matches anything find matches for selector2 and apply styles END IF This concept seems somewhat like the previously proposed :matches() pseudo-class (there's plenty of discussion about it in the archives), but it too has significant problems and we're unlikely to see it any time soon, if at all. If I understand correctly, the above example would be equivalent to selector2:matches(selector1) { ... } -- Lachlan Hunt http://lachy.id.au/
Received on Wednesday, 21 December 2005 12:45:31 UTC