У меня есть очень простая 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 отображается идеально (заголовок и дата в одной строке, за которыми следует абзац). Однако в IE7 между заголовком, датой и абзацем есть большой пробел.
У нас есть простой сброс, который очищает все поля и отступы для каждого элемента.
Удаление плавающей точки в элементе даты устраняет эту проблему, как и установка zoom: 1 в абзаце или удаление overflow: hidden в контейнере, но все это не идеально. Почему float, за которым следует абзац, вызывает это дополнительное верхнее поле только в IE7?