There are four really fundamental CSS selectors which are the most common that you will see. Those are class, star, element and ID selection.
Class selection
ID selection
Star selection
Combinations
When we want to get a bit more specific, we can select elements based on their position within the HTML.
Sibling Selectors
Child selection
Although class and ID selection are built in, you can also select any element by any attribute using attribute selection. This uses the square bracket notation, i.e. p[attr]. Note, that you can still use class and id in attribute selection, i.e. p[class].
CSS also allows you to select items based on the state they are currently in. For example, an item can be hovered over, so it is said to be in the hover state.
CSS also allows you to select items based on the order they appear in.