Re: [selectors4] Use pesudo-class instead for selecting parent elems

Le 31/08/2013 08:10, Xidorn Quan a écrit :
> Hi all,
> I am new here. I have a suggestion for selecting parent elements.
> In the current draft, a new mechanism is introduced to change the
> subjects of a complex selector, which is prepending (or appending)
> exclamation mark, so that an element can be selected according to its
> descendents.
> But IMHO, it is not a flexible way to do so. Sometimes we may want to
> select not the elements with specified descendents themselves, but the
> elements related to them, like preceding, descending, etc. Consider
> the following document:
> <UL>
>      <LI>
>      <LI><UL></UL>
>      <LI>
> </UL>
> It is not possible for current selectors4 definition to write a
> selector to represent LIs which follow a LI who has an UL inside.
> There are many similar cases.

:matches() to the rescue:

li:matches(*! ul) ~ li

> However, if we use pesudo-class instead, like :contains() or
> :has-child(), the problem can be solved. For the example above, we can
> use "LI:has-child(UL)~LI" to select the elements required.
> IMO, this kind of notation looks more intuitive, and won't introduce
> new symbols to complexify the grammar. And we would not need to worry
> about whether the mark should be prepended or appended anymore. Just
> drop it.
> What do you think about this idea?

:has-child() seems less general than the subject indicator. Isn’t it?

Simon Sapin

Received on Monday, 2 September 2013 16:38:55 UTC