I expect the "best" answer depends on what kind of page you're building. For example, is this a a stand-alone web page, one page of a one-off site, part of a CMS where templates are used for common patterns, part of a full-blown web application with lots of interaction and every page unique? Will the content be static, generated from a DB on the server, generated dynamically on the client side? Are you designing alone or collaborating with others? Do different people have different roles on the project?<p>With that said, I typically develop HTML, CSS and even JS in parallel. I try to have a fair idea of what my information architecture, content, layout, visual style and interaction design are before I start, and then treat it somewhat like a software project: start by writing a high-level outline HTML page structure and the CSS to set up the layout and basic presentation style, then add more detailed HTML and CSS for each part of the page, and iterate in increasing levels of detail until I'm somewhere near done. At any point, I might step back and refine/replace something from earlier with something more flexible or generalised, particularly with CSS as the recurring patterns for the page start to become clear.