Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.
Že by (mně) neznámý bug? A je to vůbec bug?
V příspěvku Nalepte si známku na web jsem si naběhl - nevyzkoušel jsem si, zda efekt se zoubkovaným okrajem funguje v IE. Začal jsem to zkoumat a zjistil, že se IE i ve standardním módu verze 6.0 chová v tomto jinak než moderní prohlížeče a k tomu ne zcela důsledně.
Co se stane, když se ve stylopisu zadá nějaká barva pro pozadí (background) a styl okraje dotted nebo dashed? Jakou barvou se mají vykreslit úseky okraje mezi jednotlivými tečkami nebo čárkami?
Specifikace CSS je trochu záhadná:
Ale znamená to, že okraj překrývá pozadí, nebo ne?
Tvůrci moderních prohlížečů se rozhodli, že pozadí bude do okraje zasahovat (tj. okraj bude pozadí překrývat). Zato u IE 5.5 a dokonce i 6.0 ve standardním módu záleží na tom, zda má prvek nastavenou šířku pomocí width. U prvku s nastavenou šířkou pozadí nezasahuje do okraje, kdežto u prvku bez zadané šířky již zasahuje.
Z toho vyplývá snadná možnost nápravy pomocí tzv. matrjošky – u prvku nenastavíme šířku a vnoříme ho do dalšího prvku, u něhož šířku již nastavíme. (Můžete si prohlédnout příklad.)
To ale stále není odpověď na původní otázku. Je to chyba, nebo ne? A pokud ano, pak čí? Upřímně řečeno, jakkoliv nejsem fanda IE, v tomto případě se mi zdá logičtější okraj do pozadí nezahrnovat. Co si myslíte vy?
Vložit vlastní komentář – Návrat k článku – RSS komentářů tohoto článku
[1] 30. 3. 2004, 10:42 – Jan Bien (Odkaz)
Velmi hodnotný příspěvek, pane kolego. Já sám si však specifikaci interpretuji trochu jinak.
To, že pozadí se vztahuje k obsahu a vnitřnímu okraji je psáno v sekci "Formatting model". Ta je obecná a nemůže podrobně obsáhnout konkrétní formátovací detaily.
Zato sekce "Box properties > border-style" je již zcela přesná a důsledná. Podle ní se má rámeček vykreslovat na pozadí.
Takže můj závěr, že správně se okraj do pozadí zahrnovat má. A opět se ukazuje další chyba IE s boxy, které mají definovanou šířku.
[2] 30. 3. 2004, 10:55 – Jan Bien (Odkaz)
Já bych se měl více soustředit, trochu jem poslední větu popletl. Proto opravuji: Takže můj závěr je, že správně se rámeček do pozadí zahrnovat má. A opět se ukazuje další chyba IE s boxy, které mají definovanou šířku.
[3] 30. 3. 2004, 11:26 – Honza Hučín (Odkaz)
Právě nedůsledné chování IE asi znamená, že to je bug IE - kdyby to bylo úmyslně takhle implementováno, choval by se IE stejně bez ohledu na to, jestli má prvek zadanou šířku.
[4] 30. 3. 2004, 12:46 – Jan Bien (Odkaz)
Jistě, je to bug. Ale jak říkám, boxy s definovanou šířkou, to je v IE samá chyba. Chování moderních prohlížečů je v pořádku a podle specifikace.
[5] 31. 3. 2004, 21:38 – keff (Odkaz)
No, me by jako grafikovi prislo nejlogictejsi, kdyby pozadi sahalo prave do pulky ramecku, tj kdyz dam border dotted a velky tecky, na modrem pozadi, tak uvidim modre rozhrani a tecky se stredem na tomto rozhrani...ale neukamenujte me, csskari :)))
[6] 14. 4. 2004, 18:01 – bukaJ
ad [5]> Nesouhlasim! Spis bych to dal jako vlastnost border-overlap: yes|no;
[7] 15. 4. 2004, 07:50 – Honza Hučín (Odkaz)
[6] To není špatná myšlenka. Zkus to navrhnout W3C :-))
[8] 15. 4. 2004, 11:32 – bukaJ
ad [7]> Nerozumim aglicky dost dobre, asi by bylo dost dobre, kdybys to treba udelal ty - k napadu si nevazu zadna autorska prava, jen bych z pripadne odmeny chtel vytezit nejakou tu korunku:-)))))
K tomuto článku není možné vkládat komentáře.
© Honza Hučín 2004–6
Šuplík běží na PIPNI.CZ. Díky!
8. 8. 16:48 | Pepa
7. 8. 21:26 | Honza Hučín
7. 8. 21:02 | Honza
6. 8. 14:29 | Pepa
3. 8. 18:29 | Honza
*1967, absolvent MFF UK v Praze (1991)
statistik, analytik, programátor, učitel, hudebník