Combining :nth-of-type() and :not

后端 未结 3 662

I have a strange case of trying to combine two pseudoclasses: :not and :nth-of-type() to get rainbow striping on non-hidden items

Having a

相关标签:
3条回答
  • 2020-12-22 03:25

    CSS parses right-to-left. Have you tried flip-flopping the :not and :nth-of-type?

    Why do browsers match CSS selectors from right to left?

    0 讨论(0)
  • 2020-12-22 03:26

    This appears to be a duplicate of this question: Css coloring table problem

    The answer of that was essentially, no, but you could apply a class to the visible rows to make it work.

    0 讨论(0)
  • 2020-12-22 03:39

    I assumed css wouuld filter the :not items first before applying the :nth-of-type

    Nope. CSS is fully declarative; every selector is a simple condition that is true or false independently of any selector part. It's not a procedural language where you take a set and process it, narrowing it down with each step. A selector language with procedural rules would be immune to many kinds of optimisation and would be slower.

    So nth-of-type is only about position within an element's parent, and not position in a 'results list so far' because CSS selectors have no such concept. A selector engine could look up the test for nth-of-type before narrowing it with not, as the rules do not interfere with each other.

    0 讨论(0)
提交回复
热议问题