Neděle 6. 6. 2004 (16:28)
Počítače, internet, IT

Microsoft opravuje chybu v IE, ale dělá chybu

Internet ExplorerTrošku matoucí jméno zápisku, že? Pokusím se to vysvětlit. #lama píše, že SP2 pro Internet Explorer 6 přinese opravu špatného počítání box-modelu. Otázkou pro mě je, jestli by však špatné počítání box-modelu nemělo být naopak standardizováno. Minimálně v rámci IE. Opravou jedné chyby způsobí Microsoft nepříjemnosti většině správcům a autorům webů. V nejlepším případě bude stačit přestylovat a vyhodit matrjošky. Trošku horší to budou mít ti, co nutili Gecko špatně počítat box-model tímto zápisem * {-moz-box-sizing: border-box} ve stylopisu. Ti budou muset tento zápis vyhodit a pro změnu předělat styl tak, aby se např. absolutně pozicovaný design nerozhodil při správném počítání box-modelu. Až sem je to pořád relativní brnkačka - tedy pokud nebudete muset platit nějaké webdesignerské firmě za přestylování, když to sami neumíte.

A teď je tu kámen úrazu. Spíše pořádný šutrák. Bude ihned každý aktualizovat IE6SP1 na IE6SP2? Proslýchá se, že IE6SP2 půjde nainstalovat pouze na Windows 2000/XP a tak Windows 98/Me budou odříznuta. Může to také znamenat, že tu bude zastoupení jak IE6SP1 (ti, co nechtějí/neumějí/nemohou updatovat), tak IE6SP2. A co teď? Jediným řešením, které mě napadá, je použít matrjošku. Pokud nepřinese IE6SP2 nějaký nový nástroj na matrjoškování, tak jsme ale .... víte kde, že?! Nemusí přinášet nic nového, stačilo by možná vyhodit „podporu“ nějaké staré matrjošky (např. _vlastnost: nastaveni; nebo vlastnost="nastaveni").

Dalším možným řešením je větvení přes skript (v JavaScriptu třeba využít parseInt(navigator.appVersion)). Ale to by se nesměl IE6SP2 hlásit jako verze 4, protože všechny vyšší verze (5, 5.5 a 6) se mi tak hlásí.

Znáte jiné řešení? Pošlete komentář, rád jej zveřejním.

Reagoval Lumpy: Proč by měla být standardizována neschopnost Microsoftu správně začlenit poporu webových standardů do svého prohlížeče? Opravou jedné chyby způsoboí Microsoft nepříjemnosti jen neschopným a arogantním tvůrcům webů, kteří si doteď mysleli, že stačí optimalizovat své stránky pro IE a že webové standardy a validace je k ničemu. Čas totiž stále více dokazuje, že vývoj směřuje k webovým standardům. Když totiž někdo neudělá web podle standardů a spokojí se s tím, že mu to IE zobrazí, NIKDO mu nezaručí, že tomu tak bude i u novějších verzí IE. Naopak ten, kdo jednou udělá web podle standardů (=pořádně) a půjde mu ve všech prohlížečích, tak má prakticky jistotu, že v budoucnu nebude mít zbytečné starosti.

Reagoval rony: CSS je iste doporucenie, ktore je vhodne skor zjednocovat ako uzakonovat vynimku ako pravidlo. Jasne, ze tvoje tvrdenie je pritazlive avsak zahrna v sebe skor tu cestu do pekla dlazdenu dobrymi umyslami. Koniec koncov, IE6 uz priniesla v box modeli razantnu zmenu, ktora sposobila, ze webdesign sa zacal delit na stranky este dobre v IE5.x a zle chodiace v IE6 (pripadne naopak) pretoze rozdelil renderovanie podla hlavicky dokumentu. Ak je nadej, ze zaplata opravi renderovacie jadro, je to len dobre. Tak alebo onak sa chyba box modelu prejavovala prave u layoutov pisanych v CSS, co uz pisu zvacsa rozumni autori - existencia matrjosky v IE ci zaplatovanom alebo nie stranky nerozbije takze nie je co vahat. Proste len casom zrejme na matrosku zabudneme. A to vyznam ma vacsi ako Macichov napad nechat zakysnutych webmajstrov v oslneni prevahou IE ;-)

Má odpověď: V zásadě proti správnému počítání box-modelu vůbec nic nemám. Alespoň bych mohl s klidem zapomenout na matrjošky, ale jak jsem napsal, problém je, že tu bude stále dost starých verzi IE (protože IE6SP2 nemusí být k dostání pro Win98/Me) a způsob, jak snadno rozlišit IE6SP1 a nižší verze (se špatným počítáním box-modelu) a IE6SP2 (se správným počítáním box-modelu) mi uniká. To je to jediné, co mi vadí. Ale to jsem napsal už v zápisku ;-)

Reagoval dgx: Realita je takový, že správný box-sizing má IE od verze 6. Tedy i bez service packů :-) Takže zbývá odfiltrovat starší verze. To leze buď matrjoškou, ale jelikož jsem její skalní odpůrce, poradím jinou cestu: div {padding: 10px; width: 100px; /* toto baští každý IE */
widt\h: 80px; /* toto zbaští jen IE 6 */
tedy pro IE 6 se nastaví width na 80px, a celý div má 80px + 2 * 10px (padding) = 100px, a pro IE < 6 má celý div šířku také 100px danou už vlastností width.

SLEDOVAT ZMĚNY | VYTISKNOUT | Podělte se o odkaz na linkuj.cz nebo del.icio.us




Stálý odkaz (permalink): Stálá adresa tohoto zápisku je http://blog.macich.net/1086539280-microsoft-opravuje-chybu-v-ie-ale-dela-chybu.html (pro IE: vložit do schránky | přidat k oblíbeným). Chcete-li na zápisek odkázat, použijte ji.

Další zápisky: Následujícím zápiskem je spot Microsoft má nový patent do sbírky Předešlým zápiskem je spot Blogování z mobilu s Blog:CMS Další pak naleznete při navigaci z hlavní stránky. Můžete se také podívat na seznam všech zápisků.

Aktuální místo vašeho pobytu: Macich.NET » Blog počítačového nadšence » Počítače, internet, IT » Microsoft opravuje chybu v IE, ale dělá chybu





Sledování změn

Váš e-mail:

Zde můžete zadat e-mail, na který vám bude automaticky službou Woko.CZ zasláno upozornění na případnou změnu stránky. Dozvíte se tak např. o přidání dodatku či komentáře.