sharpek.net

moje trzy grosze

Trzy bugi IE6 które trzeba znać

Poniżej przedstawiam trzy błędy które można spotkać na codzień w ulubionej przeglądarce weddeveloperów Internet Explorer 6.

Zwiększenie marginesów 2 krotnie

Często spotykany bug. Elementy  które posiadają właściwość float: left/right i margines boczny. W tym momencie dochodzi do dziwnej sytuacji, IE zwiększa margines 2 krotnie, możne to prowadzić do prawdziwej katastrofy jeśli cały design strony budowany jest za pomocą float-ów.

Poniżej przykład, z lewej strony możemy zobaczyć jak to zinterpretowało IE, a z prawej przykład jak to widzi Opera.

IE 6 Opera title=

Blok zaprezentowany powyżej miał taki styl:

#box {
    float: left;
    width: 100px;
    height: 100px;
    background: #fff;
    margin: 10px;
}

Trudno powiedzieć dlaczego się tak dzieje. Naszczęscie istnieje banalny sposób na rozwiązanie tego błędu – wystarczy dodać właściwośc display: inline do elementu (Nadal pozostanie elementem blokowym mimo display: inline, w każdej przeglądarce.)

Height: 1px

Internet Explorer w całej swej mądrości nie pozwala utrudnia na utworzenie elementów o wysokości 1,2,3,5px, w prosty sposób.  Spowodowane jest to tym że IE rezerwuje sobie wysokość równej +/- wysokości czcionki która jest ustawiona dla danego elementu lub dziedziczona.

Przykład:

IE6 opera

Nic nam nie da ustawienie wysokości elementu na font-size: 0px; gdyż otrzymamy element o wysokości 2px :) Pomaga dodanie właściwości overflow: hidden; wtedy otrzymujemy element o wysokości 1px;.

Odstęp na listach

Stwórzmy sobie takie menu:

<ul>
	<li><a>link</a></li>
	<li><a>link2</a></li>
</ul>

Oraz taki styl

ul {
    list-style: none;
}
ul li a {
    display: block;
    background: red;
}

Efekt takiego kodu będzie taki:

IE6 Opera

To co widzimy po lewej stronie to radosna interpretacji naszego kodu wykonana przez IE.
Pozbyć się tych odstępów można na dwa sposoby:

  • Usunąc białe znaki między  </li> i <li>
  • Do ul li a, dodać właściwość zoom:1

W przyszłości postaram się opisać kolejne ciekawe bugi jakie można spotkać w IE.

 

Comments: 1

Leave a reply »

 
 
 

A ja sie nie zgodze…

 
 

Leave a Reply

 
(will not be published)
 
 
 
 

Preview: