私は非常に単純な HTML ページを持っています (XHTML 1.0 Strict として検証されます):
<div class="news-result">
<h2><a href="#">Title</a></h2><span class="date">(1-1-2009)</span>
<p>Some text...</p>
</div>
次の CSS を使用します。
.news-result {
overflow: hidden;
padding: 30px 0 20px;
}
.news-result h2 {
float: left;
margin: 0 10px 0 0;
}
.news-result span.date {
margin: 1px 0 0;
float : left;
}
.news-result p {
padding: 3px 0 0 0;
clear: left;
}
このページを IE6 または FF3 でレンダリングすると、完全にレンダリングされます (タイトルと日付が 1 行に表示され、その後に段落が続きます)。ただし、IE7 では、タイトルと日付、および段落の間に大きなスペースがあります。
すべての要素のすべてのマージンとパディングをクリアする簡単なリセットがあります。
zoom: 1
段落の設定やコンテナーの削除と同様に、日付要素のフロートを削除すると、この問題が解決しますoverflow: hidden
が、すべてが理想的ではありません。float の後に段落が続くのはなぜですか? IE7 でのみ、この追加の上マージンがトリガーされるのはなぜですか?