- From: Anton Prowse <prowse@moonhenge.net>
- Date: Sun, 04 Jul 2010 21:59:26 +0200
- To: www-style@w3.org
- CC: Estelle Weyl <estelle@weyl.org>, "L. David Baron" <dbaron@dbaron.org>
Estelle Weyl wrote: > > On Jul 4, 2010, at 9:32 AM, Anton Prowse wrote: > >> L. David Baron wrote: >>> On Sunday 2010-07-04 10:24 +0200, Anton Prowse wrote: >>>> "Specificity" isn't the right term here (it has another meaning in CSS >>>> Selectors [3]) but I understand what you're asking. However, there is >>>> no universal common behaviour of pseudo-classes as regards their >>>> interaction with other parts of the sequence of simple selectors to >>>> which they belong. >>>> >>>> Hence we must turn to the definition of the :not pseudo-class to >>>> discover its behaviour: >>>> >>>> "The negation pseudo-class, :not(X), is a functional notation taking a >>>> simple selector (excluding the negation pseudo-class itself) as an >>>> argument. It represents an element that is not represented by its >>>> argument."[4] >>>> >>>> So, in the sense you mean, the :not pseudo-class does behave >>>> differently >>>> from the :nth-of-type pseudo-class in that the whole of the simple >>>> selector argument is taken into consideration. >>> I think this is a confusing way to describe things. I think it's >>> clearer to simply say that the parts of the simple selector are >>> independent of each other, and then the results are combined. Thus: >>> :nth-of-type(5) selects any p element that is the fifth p element >>> within its parent, any div element that is the fifth div element >>> within its parent, any i element that is the fifth i element >>> within its parent, etc. >>> p selects any p element. >>> p:nth-of-type(5) selects the intersection of those two sets, which >>> is any p element that is the fifth p element within its parent. >>> Thus, if you add attribute selectors to the same simple selector, >>> you're not changing what :nth-of-type() means, you're just >>> intersecting the result with an additional restriction. >> >> Yes, I fully agree that intersection is the right way to view this (and >> was planning to say so should Estelle have replied; this formulation >> only occurred to me seconds after pressing Send ;-) >> >> img[src*="photo"]:nth-of-type(odd) >> >> is the set of elements E which satisfy all of the following properties: >> >> E is an img element >> E has a src attribute whose value features the substring "photo" >> E is the first or third or fifth or ... element of its type (ie img) of >> its parent. >> >> >> But what I was trying to emphasize in my comment is that :not is in some >> sense more powerful than nth-of-type pseudo-class. If nth-of-type was >> renamed slightly (nth-of-specialized-kind ?!) and took a simple selector >> as an argument as well as the an+b notation, then it would behave a bit >> more like :not (as well as addressing the problem which I think Estelle >> wanted to solve). >> >> Cheers, >> Anton Prowse >> http://dev.moonhenge.net >> >> > I am looking for > Of the image that have src*=photo, match the odd ones. That's what you need my hypothetical :nth-of-specialized-kind pseudo-class ;-) :nth-of-specialized-kind(odd, img[src*="photo") { [...] } > I am getting > > Of the Odd images on the page, match the ones that also have source photo > > Is this a correct browser rendering according to the specificiations? Yes. > Is there a way to return first the attribute selector portion, then apply > the nth-of-type pseudo class on top of that? Not that I know of (and I don't think my pseudo-class is likely to catch on!). Cheers, Anton
Received on Sunday, 4 July 2010 20:00:51 UTC