Since the beginning developers realized that separation of concerns is a powerful strategy. Keep things small, simple and compartmentalized. That principal can be seen in many tools and ideas: keep code separate from data, keep bussiness logic separate from presentation, keep server logic separate from client logic, etc. HTML and CSS help to separate concerns. HTML is a vehicle to structure your data. CSS is a tool to present (color or pretify) that structure. Think of a document that you create in Word. Think of a technical book that you read. When you write a book like that, you trying to add your thoughts into structure that can help your reader to understand your ideas. You put your thoughts into sentences. You group the sentences into paragraphs to help reader. You group paragraphs into sections giving them heading 3. You group those sections into chapters (heading 2). You group chapters into parts (heading 1). You mark some parts of your text as "example" or "things to remember" or "side note". Ideally you do not think how it will look on the paper at that time. Should I bold my examples or all cap them? At that point most writers care about getting their thought down, so it is clear. Mark examples as "examples" and move on. Than you can apply style. You can say all heading 1 is bold 12pt and all examples italic all caps. The same in web world. HTML is your thoughts, your data in a structured format. It can have IDs and references to class (this chunk is example or side note), but it should not have fonts and colors. That's where CSS come to help. CSS is all about presentation: any thing marked as side note should be in a floating box on right with border around. In some companies HTML and CSS done by 2 different people. Even if you not planing to reuse your styles between the pages it is a good practice to separate concerns. Create separate CSS, define your presentation there and reference it from HTML. For more best practices: http://net.tutsplus.com/tutorials/html-css-techniques/30-html-best-practices-for-beginners/