elitaPoznate zaujimave weblogy?

Zostavuje sa slovenska bloggerska elita pre rok 2008

Minuly rok Vas zaujala, co nove bude teraz?

3. apríl 2006 13.45 WEB

Zisťovanie veľkosti viewportu

Rozdiel medzi veľkosťou desktopu (plochy) GUI operačného systému a veľkosťou viewportu pre zobrazenú stránku v prehliadači sme už vďaka Spravodaju dokonale zvládli. Kto nie, tak ide o fakt, že veľkosť desktopu nemá naozaj žiadny súvis s rozmermi plochy do ktorej sa stránka zobrazí. Naozaj ŽIADNY.

Tentoraz si však spravíme praktické cvičenie, kde skúsime ukázať ako by ste mohli odhadnúť na akú šírku sa to vlastne tá stránka vyrenderovala v okne prehliadača.

Všetci vieme, že Toplist, Navrcholu a ďalšie meradlá s obľubou používajú kód pre zistenie veľkosti desktopu. Toto číslo ani zďaleka nič nenapovie. Povie iba to, že najviac návštev bolo z počítačov s nastavenými rozmermi desktopu. Nepovie ale, že to možno boli iba ľudia, ktorí vidia stránku bez problémov a preto si ju obľúbili a tí, ktorí uvideli chaos to vzdali a už na ňu zabudli. Nepovie koľko skutočne ľudí má naozaj taký desktop. Nedá sa takmer vôbec odvodiť hodnoverná súvislosť a závislosť štatistikových čísiel so skutočnosťou.

Omnoho lepšie je buď premýšľať v pásmach (od ktorej hodnoty sa moja stránka začne zobrazovať prijateľne až po akú hodnotu). Následne sa ešte môžem rozhodnúť, čo s hodnotami mimo pásmo (kašlem na ne, vypnem layout alebo čo vlastne urobím).

Pretože okrem počítadlového merania veľkosti desktopu je možné "zmerať" aj rozmery viewportu, tak si to môžeme odskúšať. Vopred upozorňujem, že tieto operácie nemajú oporu v doporučeniach W3C (mimochodom, všetci odvolávači na štandardy sa odvolávajú na niečo, čo neexistuje) a preto sú implementácie svojskejšie ako rozporné chápanie box modelu. Pre naše účely to však nemusí príliš vadiť.

Nevadí to asi aj preto, že potrebujeme vedieť iba ZHRUBA akú šírku má viewport (skutočná šírka stránky) v prehliadači návštevníka. Ide nám totiž iba o to, či sa dostaneme do istého pásma prijateľnosti jeho prostriedkov.

Uvažujme situáciu, že nám záleží na tom, aby v prípade podpory javascriptu, dostal čitateľ stránku čo najlepšie vyhovujúcu jeho viewportu. Pokiaľ javascript nemá, tak sa musí spoľahnúť na naše pásmo prijateľnosti (či sa doň dostal). Predpokladáme, že stránka je v rozmedzí pásma prijateľnosti bez problémov prehliadateľná (minimálne hlavná časť obsahu je dostupná a nenarušená). Pre prípady mimo pásma resp. v na hraniciach sme sa rozhodli prispôsobovať zobrazenie stránky práve zistením šírky viewportu (extrémisti aj výšky) a modifikujeme layout podľa týchto hodnôt.

Nakoniec predpokladáme, že Vaše defaulty (bez reptania vyrábate) pre výrobu stránok sú samostatné CSS pre media print, media handheld (a samozrejme media screen) s tým, že bezpodmienečne ovládate maxwidth minwidth aj s ich implementáciou pre IE.

Zisťovanie veľkosti desktopu a viewportu je možné v javascripte použitím:

window.screen.availWidth - veľkosť desktopu!!!
window.innerWidth - nefunguje v IE. Opera a FF ukazujú mierne vyššie hodnoty ako skutočné
document.body.clientWidth - v IE a Opere zobrazí skutočnú hodnotu. FF vyššiu
document.body.scrollWidth
document.body.offsetWidth
document.documentElement.clientWidth - Firefox zobrazí skutočnú hodnotu. Opera vyššiu a IE zobrazí nulu
document.documentElement.scrollWidth
document.documentElement.offsetWidth

Z uvedeného vidno, že sa máme nad čím rozhodovať. Sofistikované riešenia môžu v javascripte vetviť pre FF zistenie pomocou document.documentElement.clientWidth a pre IE s Operou zasa document.body.clientWidth

Zaujímavá situácia však nastáva keď deklarujeme verziu dokumentu. Hodnoty sa totiž zmenia podľa toho, či deklarujeme dokument ako napríklad XHTML 1.0 Strict alebo nie.

Pripravil som pre Vás preto dva príklady:

Sledujte aké čísla to zobrazuje a pri zmene okna prehliadača si stránku refreshnite. Pokúste sa porovnať aj rôzne prehliadače.

Pre tých, čo sa nevedia pozrieť do zdrojáku, tak časť z ukážok:

<p>Sirka pre FF <span id="sirka1"></span></p><script type="text/javascript">sirka1 = document.documentElement.clientWidth</script><p>Sirka pre IE a Operu <span id="sirka2"></span></p><script type="text/javascript">sirka2 = document.body.clientWidth</script>

Táto drobnosť by nás však nemusela zbytočne rozladiť, proste používame XHTML a nemáme možnosť váhať nad tým, aké rozdiely má.

Prečo by nám však nemali vadiť drobné rozdiely v číselných hodnotách?

Predstavme si, že náš layout sa v pohode bez úprav zobrazuje v pásme od 640px do 1280 px. Pre tento účel je nepodstatné či sa nám vráti číslo 864 alebo 848. Pokiaľ sa vráti 630, tak už môžeme prepínať na upravený stylesheet tým, čo to javascript povolí a to isté pre väčšie obrazovky.

Opäť zdôrazňujem, že použite maxwidth a minwidth vo vašom layoute aj pre prijateľné pásmo najmä z dôvodu dosiahnutia optimálnej šírky riadka textu. Pásmo slúži skôr na naozaj kritickú hranicu, kedy sa layout úplne rozpadne.

Bohužiaľ nemám toľko času a chuti, Mal som toľko chuti (budúci príspevok), aby som pre Vás urobil javascriptovú knižnicu, ktorú si iba pichnete do dokumentu, pripravíte alternatívne CSS layouty a už Vám to pofrčí. Spolieham sa skôr na Vás, pretože kódovanie fluidných layoutov je naozajstná výzva pre grafika aj kódera, z ktorej má profit návštevník. Miesto toho si pozrite príklad zmeny layoutu v závislosti na šírke viewportu a možno sa niekedy dočkám podobného prekvapenia ako pred časom. Aby toho nebolo dosť tak ešte pár vecí do kontextu k viewportu a fluidnému layoutu.

Čerpal som:

Tak ešte raz :-) Fakt nejde povedať: ľudia si kupujú 1024×768 monitory a tak budem robiť stránku pre 1024×768. Nie. Vážne to nejde :-)

Pokiaľ sa ti zdá, že tento článok by sa hodil do výberu zaujímavých stránok, tak ho sme.sk pošli do vybrali.sme.sk

Komentáre k obsahu príspevku:

Chcete napísať nesúhlasný komentár? Prosím, zvážte nasledovné: je šanca, aby niekto zmenil Váš názor alebo chcete iba trvať na svojom? V prvom prípade sú Vaše slová vítané.

Chcete urážať? Nepíšte sem urážky a invektívy. Každý, kto na týchto stránkach publikuje je automaticky (doplňte vhodný výraz). Takže už to všetci vopred vieme, čo si myslíte a preto sa neopakujte.

  1. [1] dusoft, 3. apríl 2006 22.50

    rony cez den zamakal a hla open source sa zrodil. pekne.

  2. [2] rony, 3. apríl 2006 23.04

    tentoraz som to zle sformuloval - najprv sa mi nechcelo pisat javascript ale potom som iba nasiel to jadro a iba som urobil nieco okolo toho, prevzal som riesenie z Man in Blue a skusil som ho podat trosku zrozumitelnejsie. To ale uvidis v buducom prispevku.

  3. A tvoj názor?


funkcionalita - kto by bol spokojný s obyčajnou funkciou, ked môže mať rovno funkcionalitu? Je to dlhšie, znie to odbornejšie a dajú sa za to naúčtovať väčšie peniaze, keď posielame faktúru za nové webové stránky. Malý bullshitový slovník



Čítal som

Stručne komentované stránky, ktoré ma zaujali:

  • Zásadní události - Misantrop.info 17.40 Hľadám blogerov, ktorí by na blogu zverenili reklamný článok o istom zaujímavom internetovom projekte. (v prípade záujmu je možnosť viacerých článkov z rôznych projektov). Čo za to získa bloger? Zaujímavý článok o zaujímavom internetovom projekte. (t.z. obsah zadarmo)
  • perohryz: Postrehy z Ameriky I. 15.04 Check-in v automate na letisku, pri vedľajšom prístroji vedľa mňa stojí technik Delty a pozerá smutne na monitor, kde dlhý čas svieti už len úvodná obrazovka Windows. - Preboha, to funguje na Windows? - Áno, bohužiaľ, bohužiaľ, vraví technik. - Mal by som si radšej vybrať iné aerolinky? pýtam sa. - Nie, nie, rozveselí sa technik, prisahám že v lietadlách to nemáme!
  • Obsahový web čaká druhotná platobná neschopnosť 11.00 Debilnosti súčasného modelu, kedy za tvorbu obsahu paltí úplne niekto tretí formou inzercie u niekoho štvrtého a celé to spravuje niekto šiesty, som sa niekoľkokrát venoval.
  • Megan Fox na noc 10.58 alebo na den :-)
  • Ak niekto nedá prednosť, skúste ho obísť 14.55 Nedanie prednosti patrí medzi desať najčastejších príčin dopravných nehôd s vysokým podielom usmrtených osôb. Na nedanie prednosti zväčša doplatí vinník, pretože auto na hlavnej ceste mu narazí do boku. Chvíľková nepozornosť stojí mnohých život, pretože pri náraze zboku nie sú tak dobre chránení ako pri čelnom náraze. Zmiernenie následkov nehôd má v rukách aj vodič na hlavnej ceste.
  • Úspora paliva Nov@ style 12.52 Už jednou jsme psali o vesnickém palivovém článku, který sníží spotřebu, zvýší výkon a roztáhne nožky ekoložky, pokud ovšem nemá vložky. Pan Zdeněk to dotáhl mnohem dále. Postavil si dvoujádrový fuel cell.
  • Astrofyzik Jiří Grygar pozoruje vesmír z argentinské pampy 11.23 Díky své práci astrofyzika se RNDr. Jiří Grygar vydává na cesty daleko mimo naši planetu Zemi. Jeho práce ho ale také zavedla do Argentiny, do malebného městečka Malargüe, do argentinské pampy a k vrcholkům And, kam se s Jiřím Grygarem vydáme na krátký výlet.
  • Mali by sme si zobrať vzor z Maďarska a počkať 11.42 Z informácií, ktoré mám od dopravcov, blíži sa elektronický výber diaľničného mýta v Európskej únii k totálnemu chaosu. Dôvodom je to, že čo krajina to iný systém, iná palubná jednotka, iný spôsob platenia. Keby kamióny nemali také veľké kabíny, tak vodiči by nemali kde rozložiť množstvo palubných jednotiek, ktoré potrebuje vozidlo pri ceste naprieč Európskou úniou.
  • Nespomaľujte na diaľnici!! 09.55 [moj komentar] vychovavatelia: Drzi sa stoj co stoj v lavom pruhu a za ziadnych okolnosti nepojde pravym. Motivacia je rozna: bud vychovava rychlych jazdcov, povazuje pravy pruh ako osobne ponizenie alebo si proste mysli ze lavy pruh magicky skracuje jeho trasu. Pripadne este ttp ktory si mysli ze ak ma dlhu cestu pred sebou (dajme tomu az do Senca) tak lavy pruh znamena “pre tych co dialnice schadzaju az o xx km” ;-)
  • Spammer si vydělává i tisíce dolarů denně 08.10 Během měsíčního výzkumu vědci odeslali na 469 milionů spamových emailů (pro zajímavost, k dispozici měli celkem 75 869 domácích počítačů), z nichž většina nedorazila do cíle, nebo byla uživateli smazána. Na 12 zpráv ale vědci dostali odpověď, několik uživatelů se dokonce pokusilo objednat produkty přímo ze stránek fiktivní lékárny. Výzkum tak ukázal, že objem zodpovězeného spamu je ve skutečnosti daleko nižší, než předpokládají nejrůznější agentury. Podle nich se pozitivní reakce dostaví u 2,15% poslaných spamů, zatímco vědci z Berkeley ukázali, že skutečné číslo je zhruba 0,00001%.
  • Internet banking po slovensky 08.06 synopsi hlavne o TB
  • Jak na zobrazení *.png obrázků z iPhonu 13.45 postup slouží k prohlížení a následné možné editaci obrázků vytažených z iPhone (přes WinSCP nebo iBrickr), které se bez této utility v PC odmítají zobrazit
  • Šifrujeme s TrueCryptom 15.01 Minulý týždeň sa objavila nová verzia populárneho šifrovacieho softvéru TrueCrypt, ktorý patrí k open-source. Nová verzia priniesla niekoľko zásadných noviniek, ktoré stojí za to zmieniť a tak som sa rozhodol ukázať tým, ktorý ešte nešifrujú, aké je to jednoduché a účinné.
  • Gmail podporuje už aj videohovory a telefonovanie 11.37 Google sprevádzkoval vo webovom rozhraní Gmailu novú službu, ktorá bola doposiaľ dostupná výhradne cez komunikačného klienta Google Talk. Ide o hlasovú komunikáciu a videohovory.
  • Open Source fanatici vyšlápli proti BBC 09.50 V diskuzích na Živě se občas objeví hlášky, že jsme „zaprodanci“ Microsoftu [komentoval som]


kde to ste?

príspevky

média


Čítaš Spravodaj? Klikni na Surf.sk!

WebHosting: WebServer.sk

Na také to domáce ukladanie veľkých súborov Kotuha.com

Dva šifrované gigabajty zadarmo pre vaše súkromné zálohy na mozy

Späť na obsah