CSS Selectors are matched by browser engines from right to left. So they first find the children and then check their parents to see if they match the rest of the parts of the rule. Why is this? Is it just because the spec says? Does it affect the eventual layout if it was evaluated from left to right? To me the simplest way to do it would be use the selectors with the least number of elements. So