Re: Selecting an element combining nth-of-type() and a class/ID

On Mon, Mar 30, 2009 at 3:18 AM, Charles <landemaine@gmail.com> wrote:
> Hello,
>
> We should be able to select an element combining nth-of-type() and a class/ID.
> See: http://www.adsweep.org/nth-of-type-class-id.html
> If I try for instance li.new:nth-of-type(2), it doesn't select the
> second list item *among* those that have a "new" class. You can only
> select the second list of the <ul> item *if* at the same time it has a
> "new" class.
> The only way that I know, to first select list items with a "new"
> class, and then, among them, select the second item, is this:
>
> li:not([class="new"])+li.new+li.new
>
> It is too cumbersome. We need an easier solution. Imagine if we had
> several classes in this unordered list, and also if we had to select
> the 5th list item...The code would be huge. We need a solution.
> (I need this code in an ad-removal tool that injects CSS into pages to
> hide specific elements of the pages)

This was actually discussed on this list only two weeks ago, funnily enough.

The solution that seemed satisfying was an :nth-match(num, selector)
pseudoclass, which would work exactly like :nth-child except it would
only 'count' elements that also matched the selector.

Your example would be handled as "li:nth-match(2, .new)".

~TJ

Received on Monday, 30 March 2009 11:52:13 UTC