この質問の背後にある主な原因はもちろん IE6 です。Web サイトは 15% 以上の訪問者によって使用されているため、IE6 をサポートする必要があることに (ほぼ) 誰もが同意しています ( Yahoo の場合、IE6 はまだ A グレードのブラウザーです)。
IE6 は CSS 2.1 をサポートしていないので、スタイルシートで CSS 2.1 セレクターを使用できますか? 例を挙げましょう:
<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>
私のcssは次のようになります:
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 */
しかし、IE6 はこれを理解できないので、ブラウザと互換性を持たせるには、次のように記述します。
.header, .content, .footer { width:760px; }
おそらく、最初の段落にクラス名を付けて、css でそのように定義する必要があります。これらのルールを定義するIE6スタイルシート固有のものを作成できますが、それは非常に二重に思えます(そして、クラス名が必要な最初の段落の場合はまだ役に立ちません)...