CSS trükkök Internet Explorer 7-re
Két álláspont tartja magát a CSS stílusok kialakítói között. Az egyik szerint külön stíluslapokat kell készíteni az elvault IE 6 vagy régebbi IE böngésző motorok számára, és ezt feltételes megjegyzésekkel kell elrejteni a szabványosabb böngészők elől. A másik megközelítés szerint egyszerű, jól felismerhető trükköket kell bevetni egy CSS fájlon belül, mint a
Mivel a
David nem győzi többször is megjegyezni, hogy a legjobb módszer még mindig a feltételes megjegyzések használata, hiszen azok a későbbi Internet Explorer verziókban is a kívánt célt fogják elérni, nem kell CSS fájlukat frissíteni az új verzió megjelenésekor.
■ * html {}
, melyet csak az IE 6 és a régebbi IE-k dolgoznak fel. Az első módszer időtálóbb, ám kényelmetlenebb, a másodiknál megvan az esély, hogy kijavítják a kihasznált hibát. Ez történt az Internet Explorer 7-ben is.Mivel a
* html {}
trükk már nem használható az IE 7-ben, David Hammond előállt néhány lehetséges megoldással. Jópár javaslata mellett megjegyzi, hogy azok nem érvényes CSS kódot ereményeznek, viszont van egy érvényes kiválasztókat használó kész javaslata azoknak, akik vele ellentétben a feltételes megjegyzések helyett a CSS trükkök hívei, és IE7-ben is ezutóbbiakat használnák szívesen.- IE 6 és korábbi verziókban a
* html {}
használható a HTML gyökérelem kiválasztására.
- IE 7 és korábbi verziókban a
*+html, * html {}
kombinációval választható ki a HTML gyökérelem.
- Csak IE 7 kiválasztására használható (az IE 8 megjelenéséig legalábbis) a
*+html {}
kiválasztó a HTML gyökérelemhez
- Csak az IE 7-ben és a modernebb böngészőkben aktív a
html>body {}
kiválasztó a HTML törzselemre
- A modern böngészőkben, az IE 7 kihagyására használható a
html>/**/body {}
a HTML törzselem kiválasztására
David nem győzi többször is megjegyezni, hogy a legjobb módszer még mindig a feltételes megjegyzések használata, hiszen azok a későbbi Internet Explorer verziókban is a kívánt célt fogják elérni, nem kell CSS fájlukat frissíteni az új verzió megjelenésekor.
Béta!!
layout complete
Nem jó gyakorlat
Fejelsztő oldaláról: Mi lesz ha MS a 7.1-ben kijavítja? Akkor fél év múlva lehet visszamenni oldalakhoz és javítgatni.
Másik oldalról: A webes fejlesztők minden alkalmat megragadnak arra, hogy kritizálják a MS-ot, hogy nem tartja be a szabványokat. A MS válasza pedig erra az, hogy neki a szabványok mellett a való életben előforduló lapokra is figyelemmel kell lenni. Az új plusszos hacket ha nem terjed el, egy tollvonással ki lehetne javítani, ha azonban a fejlesztők el kezdik használni akkor a MS-nak ezen is el kell gondolkodnia, hogy akkor hogyan is kezelje.
nem kell elgondolkodnia
A Weblaboron is felbukkannak mindig olyan arcok (például Bártházi András ilyen :), akik úgy gondolják, hogy a jól felismerhető hackek számukra elegendő megnyugtatást adnak, nem kell két külön CSS stílus fájlt karbantartaniuk, jobban átlátják, hogy mit csinálnak. Naigen, kell majd nézni a kiválasztókat az új IE megjelenése miatt, de ugyanezt meg kellene tenni a külön CSS fájllal is (ha előre kompatibilis feltételes kommentet használnak, ha meg nem, akkor a kommentet kellene megváltoztatni legalább, és utána még a CSS-t is megnézni). Ebből a szempontból szinte mindegy, hogy *html-re keresel a CSS-ben, vagy megnyitsz egy új fájlt, az első esetben viszont rögtön látod a környezetben, hogy miért is vannak a speckó IE stílusaid. Fejlesztői szempontból nekem úgy tűnik, hogy ugyanannyi dologra kell figyelned, ugyanannyit kell módosítanod, csak máshol.
Nem szeretnék ítéletet mondani egyik módszer fölött sem, a blog bejegyzésben is igyekeztem legalább olyan arányban ismételgetni, hogy a feltételes megjegyzések jelentik David szerint az üdvözítő utat, mint amennyiszer David is leírta. Ez SZVSZ nem jelenti azt, hogy el kellene felejteni a CSS trükköket, azok egy más megközelítésű megoldást adnak azoknak, akiknek ez áll kézre.
ms elgondolkodás, vannak biztonságos hackek
Ha valaki mégis hackek melett dönt akkor törekedjen legalább a kijavított hibára épülő "alúl áteresztő" szűrőket használni.
Blogmark
Üdv, Pali
ez már ki van javítva a 7-esben?
egyelőre műkődik
Megj: eme 2 hack hibajavítása alapján nekem elég gyanus a MS hibajavító elgondolása, mintha nem a logikai hibát (html felett még egy elem, illetve hibás tulajdonság név) kezelnék, csak az ismert előfordulásokat hegesztenék meg.
"... csak az ismert előfordulásokat hegestenék meg"
Mert akkor a css-en belül pl a * html{...} és a html>body{...} közül akkor már a másodikat választaná és az elsőt kihagyná, mert mostmár az hibás nála. És mivel szerintem sokan írják oda mindkettőt, így maradna minden működően. És a korábbi IE-k is mennének jól, mivel azok meg a szabványosat nem ismerik.
A *+html{...} szerintem teljesen fölösleges lépés volt.
Important jelölés?
IE6 is
!important
-ot az IE6 is ismeri. Van benne egy bug, de attól még egész jól használható.important bug
display:inline
átok
akinek volt/van hasonló problémája jelezze lécci.
google
ha meg az a kérdés miért mutat mást az ie7, akkor annak szentelj egy új témát, mert nem tartozik a "css trükkök ie7-re" témakörbe.
köszi
update: akit érdekel, ez volt a gond: