1. CSS :any-link selector

    The `:any-link` CSS pseudo-class matches all elements that match `:link` or `:visited`

  2. Case-insensitive CSS attribute selectors

    Including an `i` before the `]` in a CSS attribute selector causes the attribute value to be matched in an ASCII-case-insensitive manner. For example, `[b="xyz" i]` would match both `<a b="xyz">` and `<a b="XYZ">`.

  3. ::first-letter CSS pseudo-element selector

    CSS pseudo-element that allows styling only the first "letter" of text within an element. Useful for implementing initial caps or drop caps styling.

  4. selector list argument of :not()

    Selectors Level 3 only allowed `:not()` pseudo-class to accept a single simple selector, which the element must not match any of. Thus, `:not(a, .b, [c])` or `:not(a.b[c])` did not work. Selectors Level 4 allows `:not()` to accept a list of selectors. Thus, `:not(a):not(.b):not([c])` can instead be written as `:not(a, .b, [c])` and `:not(a.b[c])` works as intended.

  5. selector list argument of :nth-child and :nth-last-child CSS pseudo-classes

    The newest versions of `:nth-child()` and `:nth-last-child()` accept an optional `of S` clause which filters the children to only those which match the selector list `S`. For example, `:nth-child(1 of .foo)` selects the first child among the children that have the `foo` class (ignoring any non-`foo` children which precede that child). Similar to `:nth-of-type`, but for arbitrary selectors instead of only type selectors.

  6. CSS :read-only and :read-write selectors

    :read-only and :read-write pseudo-classes to match elements which are considered user-alterable

  7. CSS 2.1 selectors

    Basic CSS selectors including: `*` (universal selector), `>` (child selector), `:first-child`, `:link`, `:visited`, `:active`, `:hover`, `:focus`, `:lang()`, `+` (adjacent sibling selector), `[attr]`, `[attr="val"]`, `[attr~="val"]`, `[attr|="bar"]`, `.foo` (class selector), `#foo` (id selector)

  8. CSS3 selectors

    Advanced element selection using selectors including: `[foo^="bar"]`, `[foo$="bar"]`, `[foo*="bar"]`, `:root`, `:nth-child()`, `:nth-last-child()`, `:nth-of-type()`, `:nth-last-of-type()`, `:last-child`, `:first-of-type`, `:last-of-type`, `:only-child`, `:only-of-type`, `:empty`, `:target`, `:enabled`, `:disabled`, `:checked`, `:not()`, `~` (general sibling)

  9. querySelector/querySelectorAll

    Method of accessing DOM elements using CSS selectors

  10. css selector: `:active`

  11. css selector: `:autofill`

  12. css selector: `::backdrop`

  13. css selector: `:blank`

  14. css selector: `:buffering`

  15. css selector: `:checked`

  16. css selector: `:closed`

  17. css selector: `::cue`

  18. css selector: `:defined`

  19. css selector: `:disabled`

  20. css selector: `:empty`

  21. css selector: `:enabled`

  22. css selector: `:focus`

  23. css selector: `:fullscreen`

  24. css selector: `:future`

  25. css selector: `:host`

  26. css selector: `:host()`

  27. css selector: `:hover`

  28. css selector: `:in-range`

  29. css selector: `:invalid`

  30. css selector: `:lang()`

  31. css selector: `:last-child`

  32. css selector: `:link`

  33. css selector: `:modal`

  34. css selector: `:muted`

  35. css selector: `:open`

  36. css selector: `::part`

  37. css selector: `:past`

  38. css selector: `:paused`

  39. css selector: `:playing`

  40. css selector: `:required`

  41. css selector: `:root`

  42. css selector: `:scope`

  43. css selector: `:seeking`

  44. css selector: `::slotted`

  45. css selector: `:stalled`

  46. css selector: `:target`

  47. css selector: `:user-valid`

  48. css selector: `:valid`

  49. css selector: `:visited`

  50. css selector: `:where()`