Jedná se o export původního článku - obsah není nijak zkrácen ani upraven. • Článek byl původně vydán: 13.10.2007 v 20:25:16. • Zobrazit ostatní články
Zdroj obrázku: neuvedeno
Asi každý, kdo si někdy vytvořil nějkou webovou stránku nebo prezentaci, si někdy vyzkoušel, jak přistupují webové prohlížeče k parsování a vykreslení zdrojového kódu. Některé se snaží vykreslovat obsah podle standardů (tzv. validně) a některé si vykreslijí jinak. Nedodržování standardů je způsobováno většinou dvěmi věcmi. Buď je prohlížeč zastaralý a nezná nové standardy, nebo je nový a jsou v něm implementovány i ještě neschválené předlohy standardů. Přikladů pro první kategorii je hodně, pro druhou už tolik ne, ze známějších prohlížečů se jedná například o Operu. Většinu chyb ve vykreslování lze téměř vždycky nějak obejít (ať už v PHP podle hlavičky prohlížeče, v JavaScriptu podle objektu navigator nebo podminkou v html). Bohužel občas člověk narazí na chybu, kterou nelze jednoduše vyřešit.
Operu jsem zmínil záměrně, protože dnešní příspěvek se týká zejména prohlížeče Opera (konkrétně verze 9.22 a verze 9.23).
Rychlou ukázkou je obrázek k tomuto příspěvku. Konkrétně si můžete vyzkoušet tento příklad zde.
Jedná se o JavaScriptové udávání procent - původně určeno např. pro hodnocení.
Abych nepsal sáhodlouhé romány ukaži hned zdrojový kód ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs"> <head> <title>Titulek</title> <meta http-equiv="Content-Type" content="charset=windows-1250" /> <meta name="author" content="Jmeno" /> <meta name="copyright" content="©2007 Jmeno" /> <meta name="keywords" content="test,hlavicka,keywords,..." />
Kromě hlavičky taky použijeme nějaké ty styly.
<style> #main{width:350px;border:2px solid blue;padding-top:10px;} #table{margin-left:10px;width:290px;height:20px;border:none;position:absolute;} #table tr{height:20px;} #table tr td{/*width:105px;*/} #ok{background-color:green;margin-right:1px;} #no{background-color:red;margin-left:1px;} #submit{width:90px;} #procenta{width:200px;padding-top:4px;text-align:center;position:absolute;font-size:18px;} #zarovnani{width:290px;height:20px;padding-top:5px;} #debug{margin:10px;background:yellow;text-align:center;} </style>
Zbytek stránky tvoří hlavní část z hodnocením funkčním bez JavaScriptu ...
</head> <body> <div id="main"> <div id="manual"></div> <span id="hodn"> Zadejte procenta: <input type="text" name="proc" id="hodnInp" value="64" />%</span> <br /> <input id="submitInp" type="submit" value="Zadat"> <script type="text/javascript"> var widthOK='132'; var widthNO='77'; </script> <script type="text/javascript" src="proc.js"></script> </div> <body> </html>
Ze statické stránky je to vše, zbývá jen JavaScript. Celý skript lze zobrazit zde.
Výsledek si můžete porovnat sami. V obrazku k příspěvku jsou screenshoty z různých prohlížečů.