У меня есть страница, где печально известное дополнительное вертикальное пространство размером 3 пикселя (под каждым элементом li
) отображается в IE7 для всех элементов моего списка. У меня есть особая ситуация, когда мне нужно, чтобы текст был абсолютно расположен внутри li
, чтобы его контейнер можно было установить на меньшую ширину, и текст выходит за пределы контейнера. Вот код, который я использую:
<style type="text/css">
div { width: 160px; font: 8pt arial,helvetica,sans-serif; border: 1px solid #999; }
div ul { margin: 0; padding: 0; list-style: none; }
div ul li { width: 30px; height: 20px; margin: 0 0 4px; padding: 0; background-color: #c00; }
div ul li a { display: block; line-height: 20px; color: #000; text-decoration: none; }
div ul li a em { position: absolute; margin-left: 5px; }
</style>
<div>
<ul>
<li><a href="#"><em>#1: premature brake wear</em></a></li>
<li><a href="#"><em>#2: squeaky brakes</em></a></li>
<li><a href="#"><em>#3: bad gas mileage</em></a></li>
</ul>
</div>
Я ищу решение, которое не включает в себя IE7-специфический взлом CSS, просто ради чистоты CSS. Я читал, что во многих случаях предоставление содержащихся элементов hasLayout решает большинство из этих проблем, связанных с дополнительной высотой в 3 пикселя, но я не смог разобраться с этим кодом.
В моем приложении я применил другое нижнее поле для IE7 (1px, а не 4px), которое работает нормально, но кажется, что это неправильно ....
Тестовая страница здесь
Живое приложение здесь
Я пробовал некоторые стандартные исправления, описанные на 456 Berea St & на этой странице , но либо я неправильно применяю их в своем примере, либо это что-то другое в как мой код структурирован. Любые предложения по исправлениям или другие способы выполнения этого макета?