A weboldal készítés során, többször a weblap készítő szembe találkozik a sokféle böngésző átkával. Míg felhasználói oldalról nagyon jó és örömteli, hogy sok böngésző program közül választhatunk, weblapos szemmel ez egyfajta átok. A legtöbb program azonosan értelmezi a html és css kódokat, de mindig vannak kivételek, amikor 1-1 apró kis elcsúszást vagy kilógást eredményezhet az eltérő programok kódolvasása, értelmezése. Mivel fontos egy minőségi weboldal esetében a kinézet, így az nem térhet el különféle böngészőkben. Ezt nevezik lényegében böngészőfüggetlen megjelenésnek. A korábbi évekig az Internet Explorer neve gyomorgörcsöt váltott ki a programozókból. Kínkeserves, kávétól átitatott, alvásra nem is gondoló esték teltek el a weblapok külsejének az IE böngészőkhöz való igazításával. Hála égnek, az IE 7 -es verziója óta javul folyamatosan az Internet Explorer kompatibilitása, szabvány követése. Az IE 11 -es verziója már egész jónak mondható ebből a szempontból, html5 kompatibilitásban igen elől jár. Azonban a belső motor változtatásával gondba kerültek a 10-es Internet Explorer -nél a weblapkészítők. Az IE -hez gyakorta szükséges úgynevezett specifikus css, vagy is olyan stílus kód, amit csak az IE értelmez. Korábban elég volt ilyen módon a kifejezetten IE -khez készült külön css-t meghívni az alábbi módon, melyet az alcím után láthattok.

Internet Explorer specfikus CSS IE9 -ig

<!--[if IE]>
	<link href="csakie.css" rel="stylesheet" type="text/css" />
<![endif]-->

A csakie.css-t csak az Internet Explorer böngészők értelmezték. Pontosabban csak az IE 1-9 közötti verziói. Korábbi években még annyira elterjedtek voltak a 6 -os és 7 -es IE verziók, hogy azokhoz is külön kellett készíteni css-t, mivel még olyan sokan használták. Mára már elenyésző lett az arányuk, nem éri meg a ráfordítást.

A fenti kód amúgy kiegészíthető és módosítható többféleképpen:

  • <!--[if IE 8]> = IE8 -as böngésző értelmezi csak, használható a 6, 7, 8, 9 -es verzióknál
  • <!--[if lt IE 8]> = IE7 -es vagy még régebbi, tehát IE8 – tól lefelé lévők, a szám természetesen módosítható igény szerint
  • <!--[if gte IE 8]> = IE8 -as és (elvileg az összes) újabb

 

Miért elvileg?

Az Internet Explorer motorját a 10 -es verzióban oly mértékben módosították, átírták, hogy már nem értelmezte ezen megkötéseket. A kérdés nagyon jó, hogy miért? Biztos meg tudták volna írni úgy is, de még sem tették. Persze az igény megmaradt, mert a 10 -es verzió sem tökéletesen.

Egy részhez IE spec kód

Lehetőség van erre is, ha csak egyetlen sorhoz szeretnénk IE -s külön értéket megadni:

.Class {
   color:  green;     /* alap, minden bongeszohoz */
   color:  green\9;   /* IE 8 es regebbi */
   *color: green;     /* IE 7 es regebbi */
   color:  green !ie; /* IE 7 es regebbi */
   _color: green;     /* IE 6 */
}

 

Internet Explorer specifikus CSS IE 10 -től

Természetesen van megoldás az IE 10 és az IE 11 -es verziójához is egyedi css -t megadni. Ehhez használjuk az alábbi kódsort, mellyel az “@import …” módon tudunk konkrét új css fájlt meghívni. Azonban mivel az új Internet Explorer verziók egyre jobb kompatibilitással bírnak, így jelentősen kevesebb specifikus kódrészletre van szükség, tehát a normál css fájl végére is fűzhetjük akár az igazításokat.

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
.cssosztaly { .... }
}

Ennyi az egész. A módszerrel jelenleg az IE 10, és 11 -es böngészőkhöz tudunk külön css-t hozzárendelni.