Od czasu do czasu nie mamy możliwości całkowitego zignorowania IE6 i zmuszeni jesteśmy do modyfikacji naszego dzieła. Kolejną niedziałającą właściwością CSS, z którą IE6 sobie nie radzi jest position: inline-block. Ten typ wyświetlania elementu jest bardzo pomocy w wielu przypadkach i często zastępuje float. Powoduje, że element wyświetlany jest jak liniowy, jednocześnie zachowując się jak element blokowy (można ustawić mu marginesy, wysokość, itd.). Niestety, jak już wspomniałem, IE6 nie radzi sobie z tym elementem. Okazuje się, że istnieje prosty fix, który można zastosować, aby inline-block działał poprawnie. Zaprezentuję to na przykładzie paginacji.
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
</ul>
W normalnej przeglądarce zadziałałoby to:
ul {
text-align: center;
border: 1px solid #7e7e7e;
}
li {
display: inline-block;
}
li a {
display: block;
border: 1px solid #dbdbdb;
margin: 10px 0;
padding: 10px;
}
Ale nie w IE6. Na szczęście fix jest bardzo prosty i nie wymaga od nas wielkiego wysiłku. Wystarczy zmienić li na display: inline, a znacznik a na display: inline-block;
Ostatecznie CSS wygląda następująco.
ul {
text-align: center;
border: 1px solid #7e7e7e;
}
li {
display: inline;
}
li a {
display: inline-block;
border: 1px solid #dbdbdb;
margin: 10px 0;
padding: 10px;
}