## Links
https://www.freecodecamp.org/news/css-selectors-cheat-sheet/
https://frontend30.com/css-selectors-cheatsheet/
https://welcm.uk/downloads/CSS-Selectors-Cheatsheet.pdf [(local copy)](CSS-Selectors-Cheatsheet.pdf)
[W3 org](https://www.w3.org/TR/selectors/)
## Simple stuff
```css
* { }
a { }
#a { }
a.b { }
.b { }
a.b.c { }
.b.c { }
a b { } b if a is an ancestor of b
a > b { } b if b is a child of an a
a * { } any with a as an ancestor
a * * { } any with a as an ancestor and at least one element in between the topmost a
a + b { } b directly after a
a ~ b { } b if it is preceded by an a
a:hover
a:before
a:first-child
a:only-child
a:last-child
a:nth-child(2|odd|even)
a:nth-last-child(2)
a:first-of-type
a:nth-of-type(2)
a:nth-of-type(odd|even)
a:nth-of-type(2n+1)
a:only-of-type
a:last-of-type
a:empty
a:not(selector)
a[href] { } a has an href
a[href="flibble"] { } href is exactly "flibble"
a[href*="://"] { } href contains :// so is not site local
a[href^="https://"] { } href begins with https://
a[href$=".zip"] { } href ending with .zip
a[href]:not([href*="://"]) { } href without a :// (i.e. site local href)
a[prop|="ab"] { } Selects , but not
```