The main culprit behind this question is of course IE6, (almost) everybody agrees that a website should support IE6 since it is used by more than 15% of the visitors (for Yahoo it is still an A-Graded browser).
IE6 doesn't support CSS 2.1, so can we use CSS 2.1 selectors in our stylesheets? Let me give an example:
<body>
<div class="header">
</div>
<div class="content">
<h1>Title</h1>
<p>First paragraph</p>
<p>Second paragraph</p>
</div>
<div class="footer">
</div>
</body>
My css could look like this:
body > div {width: 760px;} /*header content and footer = 760px wide*/
h1 + p { margin-top: 5px;} /* the first paragraph after the h1 tag should have a smaller margin
But IE6 won't understand this, so anyway to be browser compatible I should write it like this:
.header, .content, .footer { width:760px; }
And probably I have to give the first paragraph some class name and define it like that in my css. I could make a IE6 stylesheet specific that defines those rules, but that seems so double up (and still doesn't help in the case of the first paragraph needing a class name)...