The main diference is related to specificity of the rules (inline is the most specific but less practical) and loading time (external CSS will need to download the file first and then render the styles).
.class and #id
.selectorOne, .selectorTwo {
#title.primary {
The descendant combinator allows the developer to change the style of a child element if is present in the parent element.
The class selector rule because is more specific
Content > padding > border > margin
Changes the box-sizing property to the specified property (padding-box or border-box)
When setting the width/height of the element, the standard box model only takes in consideration the content box, while the alternative box model takes in consideration the content box + padding + border
Margin
Margin
The inline element only takes the necessary width and doesn’t start in a new line. A block element always starts in a new line and as a margin before and after.
An inline element does not respect the width/height properties, but the inline-block does
Block
Block
Block
Inline
The flex container is the container where the flex properties are set and the flex item are the child elements inside the flex container
Set display: flex to the parent container of the flex item
Flex grow, shrink and basis
Display: column
Justify-content defines the alignment along the main axis, while the align-items align the items on the cross axis
FlexContainer {Display: flex; Flex-direction: column; justify-content: center; align-items: center;
Space-between will distribute the space between the flex items without any space at the ends, while the space around will distribute the space evenly including the flexs items on the ends of the parent element