Once you have the ability to target html elements for styling, layout is the next core concept to master. Layout involves manipulating how elements lay out on the page. How much space do they take? Are they side by side or on top of each other? How do you manipulate this to create exactly the design you desire? This is an area of CSS that has changed and improved dramatically over the last few years with Flexbox and CSS Grid, but some of the fundamentals (flow and the box model) have remained the same.

Increasingly layouts can be done purely with CSS Grid and Flexbox, but for those who still must support older browsers, grid systems built using Flexbox or even floats are still useful.