Šuplík Honzy Hučína

Skok na navigaci (menu)

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.

Komentovaný článek

Internet a vše kolem
18. 11. 2005

Různé prohlížeče ukládají interně barvy různě

Když se nějakému blokovému elementu v HTML nastaví přímým stylem vlastnost border-color, různé prohlížeče to v příslušném objektu (do vlastnosti objekt.style.borderColor) ukládají různě. Pokud jde jenom o vykreslení rámečku, nevadí to, je to úplně jedno. Ale problém začíná ve chvíli, když potřebuju v javascriptu zjistit, jakou barvu rámečku má objekt nastavenou.

Potíž je v tom, že zapsat barvu okraje lze asi milionem způsobů. Jednak se stejná barva dá zapsat různě, jednak se může ještě uvádět společně pro celý rámeček, po dvojicích stran, nebo pro každou stranu zvlášť. Internet Explorer si to interně uchová v podstatě tak, jak to dostal v kódu, naopak Mozilla nebo Opera se to snaží převést do jednotného formátu, bohužel každá z nich to dělá jinak. Takže když se snažíte javascriptem zjistit, jestli má element nastavený třeba červený rámeček, musíte zadat složitější testovací podmínku – pro každý prohlížeč testovat něco jiného.

Vyzkoušejte si to na příkladu, nejlépe v různých prohlížečích. Jsou tam čtyři bloky, všechny rámečky vypadají stejně, ale pokaždé jsou zapsané – a tím pádem i uložené – trochu jinak.

Problém je částečně řešitelný dvěma opatřeními:

  1. testovat místo celého rámečku jen jednu stranu, tím se předejde rozdílům typu „red red red red“ versus „red“
  2. nastavit barvu tak, aby jí rozumělo co nejvíc prohlížečů stejně („#ff0000“ nebo „rgb(255,0,0)“)

Případně se dá – aspoň si to myslím – místo přímého stylu použít třída CSS (class) a pak testovat třídu místo konkrétní vlastnosti stylu, ale to má jiné nevýhody, například pokud má element přiřazeno více tříd.

Na tento problém jsem narazil při programování vánočního dárku. Ale nebojte, v IE, Mozille i Opeře mi to snad už funguje.

Vložit vlastní komentářNávrat k článkuRSS komentářů tohoto článku

Komentáře

[1] 18. 11. 2005, 13:25 – Pachollini (Odkaz)

Myslím, že kdyby se nezjišťovala přímo nastavená, ale aktuální (tj. např zděděná) barva, bylo by o trošku méně problémů.
Viz též funkce get_current_style in: http://seky.nahory.net/2004/07/relativni-vyska-prvku-experiment/

K tomuto článku není možné vkládat komentáře.

© Honza Hučín 2004–6

Šuplík běží na PIPNI.CZ. Díky!

sber.cermat.cz

RSS Šuplíku

RSS komentářů – souhrnně

U každého článku je samostatný RSS kanál pro komentáře.

Výběr článků

Posledních 10 článků

nebo podle data:

nebo hledání fulltextem:

Archiv všech článků

Poslední komentáře

Zabili mě, parchanti [2]

8. 8. 16:48 | Pepa

Cestou kolem blogu [2]

7. 8. 21:26 | Honza Hučín

Cestou kolem blogu [1]

7. 8. 21:02 | Honza

Vrtulník nad hlavou [3]

6. 8. 14:29 | Pepa

Taková hra na volby [1]

3. 8. 18:29 | Honza

Nejčtenější

Žádné údaje nejsou k dispozici.

O mně

*1967, absolvent MFF UK v Praze (1991)

statistik, analytik, programátor, učitel, hudebník

nyní Ústav pro informace ve vzdělávání

Životopis (RTF)

Napište mi