Элементы списка превратились в float: левые блоки выглядят странно в IE6

У меня есть UL, который выглядит так:

<ul class="popular-pages">
    <li><a href="region/us/california/">California</a></li>
    <li><a href="region/us/michigan/">Michigan</a></li>
    <li><a href="region/us/missouri/">Missouri</a></li>
    <li><a href="region/us/new-york/">New York</a></li>
    <li><a href="region/us/oregon/">Oregon</a></li>
    <li><a href="region/us/oregon-washington/">Oregon; Washington</a></li>
    <li><a href="region/us/pennsylvania/">Pennsylvania</a></li>
    <li><a href="region/us/texas/">Texas</a></li>
    <li><a href="region/us/virginia/">Virginia</a></li>
    <li><a href="region/us/washington/">Washington</a></li>
</ul>

И CSS, который выглядит так:

ul.popular-pages li a { 
    display:block; 
    float:left; 
    border-right:1px solid #b0b0b0; 
    border-bottom:1px solid #8d8d8d; 
    padding:10px; 
    background-color:#ebf4e0; 
    margin:2px; color:#526d3f 
}
ul.popular-pages li a:hover { 
    text-decoration:none; 
    border-left:1px solid #b0b0b0; 
    border-top:1px solid #8d8d8d; 
    border-right:none; 
    border-bottom:none;
}

Так что он отлично работает в современных браузерах, но выглядит так в IE6. Какие-либо предложения?альтернативный текст

4 ответа

Вероятно, причина для вашего макета в том, что у вас есть плавающий элемент на якоре, вместо этого переместите его в элемент списка.

ul.popular-pages li {
 плыть налево;
}

Поскольку вы не устанавливаете какую-либо ширину в своих LI, я предлагаю пропустить float и установить вместо него отображение: встроенное в свои LI, если вы хотите, чтобы они были в ряду.

Отрегулируйте с помощью padding / margin, чтобы получить соответствующее расстояние между ними, и высоту строки, чтобы получить правильное поведение для любой возможной 2-й строки.

Таким образом, у вас не будет проблем с тем, что ваш UL не будет занимать место, без необходимости скрытого элемента clear в конце списка (что является вашей другой альтернативой)

Какой DOCTYPE вы используете? DOCTYPE влияет на отображение браузеров.

Вы перемещаете свои элементы, поэтому их родитель должен очистить / сбросить поток с помощью clearfix 'hack'.

Попробуйте использовать этот CSS хак для IE6.

*html ul.popular-pages li a { 
    display:block; 
    float:left; 
    border-right:1px solid #b0b0b0; 
    border-bottom:1px solid #8d8d8d; 
    padding:10px; 
    background-color:#ebf4e0; 
    margin:2px; 
    color:#526d3f 
}

*html ul.popular-pages li a:hover { 
    text-decoration:none; 
    border-left:1px solid #b0b0b0; 
    border-top:1px solid #8d8d8d; 
    border-right:none; 
    border-bottom:none;
}

затем настройте определение CSS для IE6

Другие вопросы по тегам