Hack-uri CSS IE6 si IE7
De mult timp, webmasterii se chinuie sa optimizeze site-urile web pentru invechitele IE6 si IE7. La inceputul anului erau circa 20% utilizatori de IE6, pentru ca in momentul de fata sa mai ramana 17%. Vestea buna este ca, incepand cu 15 septembrie 2010, se lanseaza Internet Explorer 9, ocazie cu care Facebook va sista suportul pentru IE6!
Cu toate vestile bune, momentan inca trebuie sa ne consumam nervii cu variantele vechi de Internet Explorer. Asa ca, in randurile ce urmeaza, vom aborda cateva metode de “pacalit” cele doua versiuni de browsere.
Prima metoda, cea clasica, are de a face un css separat, pentru IE6 in special. Se creea un fisier css diferit (explorer.css de exemplu) si se integra cu bine cunoscutul cod:
<!–[if IE 6]>
<link rel=”stylesheet” type=”text/css” href=”css/explorer.css” />
<![endif]–>
Metoda functioneaza perfect si pentru IE7 sub forma:<!–[if IE 7]> …etc. etc.
Insa mult mai la moda pare sa fie, in ultima vreme, metoda hack-urilor integrate direct in css-ul “de baza”. Spre exemplu, multe probleme in css sunt provocate de faptul ca uneori, IE6 “dubleaza” proprietatea “margin”.
De exemplu:
#nume_div{width: 100px; height: 100px; float: left; margin-right: 10px;}
In anumite cazuri, IE6 va calcula proprietatea margin-right ,din exemplul de mai sus, la valoarea de 20 px. Ei bine, in acest moment avem o problema, care poate fi rezolvata , totusi, foarte usor:
#nume_div{width: 100px; height: 100px; float: left; margin-right: 10px; _ margin-right: 5px; }
Explicata e simpla: proprietatea css scrisa cu underscore in fata este interpretata numai de IE6. In cazul de fata, am pus margin-right la jumate din valoarea initiala, pentru ca site-ul sa se afiseze correct in browser.
Daca problemele apar in IE7, atunci hack-ul se schimba putin:
#nume_div{width: 100px; height: 100px; float: left; margin-right: 10px; * margin-right: 5px; }
In loc de underscore vom folosi steluta, dar atentie, acest hack actioneaza si asupra IE6, suprascriind proprietatile cu underscore in fata:
#nume_div{width: 100px; height: 100px; float: left; margin-right: 10px; _ margin-right: 5px; * margin-right: 8px;}
In cazul exemplificat mai sus, in care sunt folosite cele doua hack-uri concomitent, proprietatea margin-right va lua valoarea data de steluta, adica 8 px.
Totusi sunt rare ocaziile in care un webmaster se va vedea nevoit sa foloseasca ambele hack-uri deodata, asa ca nu va ramane decat sa le folositi pe rand.
Atentie! Folositi-le numai cand situatia o impune neaparat, si nu faceti abuz de ele! Mai trebuie retinut ca un astfel de css nu se va mai valida xhtml.
Spor la treaba si la web design!





