středa 13. srpna 2003

Chyba zobrazení CSS vlastnosti background-image v IE

Celý minulý týden jsem prováděl redesign jedné webové aplikace a narazil jsem na velice zvláštní chování Internet Exploreru. Vytvořil jsem tabulku, která byla orámována tenkou čárou tvořenou obrázkem nastaveným na pozadí krajních buněk. K tomuto účelu jsem využil vlastnost background-image

CSS třída s takto nastaveným pozadím vypadala takto

 
  .line{
 	background-image:url("../img/line.png");
 	background-repeat:repeat-y;    
  }
 

Tato třída byla nastavena na pozadí oněch krajních buněk. Nyní se dostaneme k problému, nezřídka se stávalo, že zobrazená tabulka neměla vykreslené ono pozadí tvořené obrázkem. Představu lze získat náhledem chybného zobrazení a správného zobrazení. Tento velice nepříjemný visuální jev vznikal zcela náhodně. Nejdříve jsem pojal podezření na obrázek ve formátu png, tato domněnka se ukázala jako lichá. Postupným zkoumáním tohoto problému jsem přišel na další zvláštnost, pokud se na stránce v místech špatné zobrazení přejelo myší nebo se vybral text pozadí bylo okamžitě zobrazeno správně. Jinými slovy, pokud se jakkoliv podařilo přinutit prohlížeč danou oblast překreslit, bylo zobrazení již korektní.

Závěr a řešení

Z výše uvedeného tedy vyplývá, že pokud bychom přinutili prohlížeč stránku nebo kontejner znovu vykreslit bylo by zobrazení pozadí pomoci background-image korektní. Ja jsem to vyřešil velice jednoduchým hackem, na událost onload jsem spojením DOM a CSS, nastavil vlastnostdisplay na hodnotu block pro element obalující tabulku s tímto pozadím, tím jsem přinutil prohlížeč znovu překreslit danou oblast a korektně zobrazit inkriminované pozadí.

Kód je velice jednoduchý a vypadá takto

 
  document.getElementById('nadrazeny-kontejenr').style.display='block'
 

Java Servlets - session tracking

seriál o technologii servletů se pěkné rozrústá, Marek Branický, představuje v článku Java Servlets - session tracking používání session v prostředí servletu. Za zmínku stojí velice užitečný seznam s popisem rozhraní, které jsou volány v případě práce servletového kontejneru s objektem HttpSession. Můžeme tak pohodlně v objektech uložených do session reagovat na události jako, rušení session(ať už vypršením platnosti nebo ručním voláním metody invalidate), přidání jiných objektů do session a podobně.

Hranice moderního prohlížeč

Ondřej Bojar v článku Moderní prohlížeče mezi českými uživateli přináší unikátní statistky používaných prohlížeču během 23 pracovních a jedenácti volných dní na přelomu dubna a května tohoto roku, jednalo se celkem o 1,68 milionu uživatelů. Statistika vyjadřuje poměr moderních/nemoderních prohlížečů v závislostech na operačním systému, typu stanice a typu připojeni.

Jedná se o velice zajímavá data ovšem s malým háčkem. Jak lze rozdělit prohlížeče na moderní a nemoderní? Kde leží ona hranice podle které můžeme určit vyspělost prohlížeče, jakými standardy a normami to určit? Bohužel tyto základní otázky posouvají závěry vyvozené s článku do jiné roviny. Pořád se střetávají ony dva zásadní pohledy na web, aplikační a informační.

Z hlediska webu informačního, poskytujícího informace bychom mohli považovat za moderní prohlížeč již Internet Explorer 5.01. Musíme si uvědomit, že již tento prohlížeč umožňuje oddělení visuální prezentace informace od informace vlastní, jinými slovy jeho podpora CSS a klientského skriptování je pro informační web naprosto postačující.

Z hlediska pohledu webu aplikačního bychom ovšem nemohli, zde jsem v hlavním rozporu s autorem článku, označit žádný prohlížeč z rodiny Internet Explorer za moderní. Míra podpory a dodržování standardů nezbytných pro webovské aplikace(řešení B2C) je v ostrém kontrastu proti prohlížečům postaveným např. na jádru Gecko. Dokonce si dovolím vyslovit tvrzení, že Mozilla 1.0 byla z technologického hlediska minimálně o půl generace vpředu oproti Internet Exploreru 6.0. V současnosti se propast stále prohlubuje, což je určeno ukončením vývoje standalone verze tohoto prohlížeče.

Pokud bychom si chtěli odpovědět na původní otázku, jak rozdělit prohlížeče na moderní a nemoderní, museli bychom definovat základní kritérium podle kterého bychom posuzovali. Pokud to neuděláme, vznikne pouze subjektivní názor na pomyslnou hranici technologické vyspělosti, tak jako vznikl názor v tomto článku.

RSS a Dagblog

Množí se dotazy na RSS Dagblogu. Dagblod bohužel RSS nemá, což je způsobeno čistě a pouze možnostmi publikačního systému Blogger. Tohoto velkého nedostatku jsem si vědom a budu se snažit RSS poskytnout jak jen to bude možné, předpokládám, že by to mohlo být zhruba v horizontu jednoho měsíce.