Content that is static, unchanging and different for each page is written in HTML.
Appearance and “light” interactivity is written in CSS.
PHP, being interpreted by the server, is executed first; the result is then sent to the client, which reads the completed page from the top down.
These rules reflect the client-server relationship discussed earlier: server-side languages are slower but highly dependable; client side languages are quicker, but we have have few ways of knowing if they were interpreted correctly or not. Features that are absolutely required to work every time therefore tend to be written in a server-side language; features that are optional are client-side. This also tends to CSS: the user could, in theory, see your page with CSS turned off, and it should still be readable.