Basically, in HTML+CSS, you declare (add) a series of element, and you add properties to those elements to decide wether they should be displayed one after another, one close to another, or some on top of others.
You achieve this by using CSS display, position (relative for a flow of elements, and absolute for placing the elements where you want, even one on top of another), or Flexbox, or a mix of all. When you’re using position:absolute, you will be using CSS z-index to define the order of virtual layers from front to back.
So you have to organize your contents into logical groups. You’ll use DIVs for that. Never hesitate to nest divs, to have many many levels of divs. You’ll use the outer ones for the general layout and the iner one to organise the subcontent. For example:
http://vincent.polenordstudio.fr/snap/q0ea2.jpg
All the orange box are divs. For the inner ones, the top one can be labeled ‘cta section’, then ‘text content’, then ‘references’, then ‘colors’… etc.