What is the difference between # and . when declaring a set of styles for an element and what are the semantics that come into play when deciding which one to use?
The ~ selector is in fact the subsequent-sibling combinator (previously called general sibling combinator until 2017): The subsequent-sibling combinator is made of the "tilde" (U+007E, ~) character that separates two sequences of simple selectors. The elements represented by the two sequences share the same parent in the document tree and the element represented by the first sequence precedes ...
The CSS that you referenced is very useful to a web-designer for debugging page layout problems. I often drop it into the page temporarily so I can see the size of all the page elements and track down, for example, the one that has too much padding which is nudging other elements out of place.
@font-face { /* CSS HERE */ } So is this @ symbol something new in CSS3, or something old that I've somehow overlooked? Is this something like where with an ID you use #, and with a class you use .? Google didn't give me any good articles related to this. What is the purpose of the @ symbol in CSS?
* { margin: 0; padding: 0; } It is odd, as removing that block in chrome web developer tools doesn't affect the layout of the page. What does this code mean, and when is it used and why?
As we all know, the flex property is a shorthand for the flex-grow, flex-shrink, and the flex-basis properties. Its default value is 0 1 auto, which means flex-grow: 0; flex-shrink: 1; flex-basis:...