home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 February / Chip_2003-02_cd1.bin / obsahy / Chip_txt / txt / 142-147.txt < prev    next >
Text File  |  2003-01-07  |  9KB  |  52 lines

  1. Layout WWW strßnek 
  2. Obejdeme se bez tabulek? 
  3. V∞tÜina prezentacφ na internetu v souΦasnΘ dob∞ vyu₧φvß pro rozmφst∞nφ prvk∙ na strßnce tabulky. TakovΘ °eÜenφ je jednoduchΘ p°i vytvß°enφ; horÜφ u₧ je to s p°ehlednostφ k≤du strßnky a nejmΘn∞ p°φjemnß situace nastane, chcete-li provΘst v layoutu strßnky zm∞nu. Navφc jsou takovΘ strßnky nepou₧itelnΘ pro zdravotn∞ posti₧enΘ u₧ivatele, p°istupujφcφ k internetu pomocφ specißlnφch Φtecφch za°φzenφ, kter²m tabulky Φinφ dost velkΘ potφ₧e. Zkusme te∩ tabulky vyu₧φvat p°edevÜφm k ·Φelu, ke kterΘmu byly vytvo°eny (tj. k p°ehlednΘ prezentaci informacφ), a layout strßnky °eÜit n∞jak jinak. 
  4.  
  5. Abyste mohli zapomenout na tabulky, budete pot°ebovat skupinu vlastnostφ kaskßdov²ch styl∙, kterΘ byly p°idßny do jejich druhΘ verze (CSS2). CelΘ se to naz²vß vizußlnφ formßtovacφ model. Vizußlnφ proto, ₧e strßnka je urΦena p°edevÜφm pro zobrazenφ na monitoru. Pojmenovßnφ vychßzφ tedy z typu mΘdia, kterΘ je urΦeno pro v²stup. Pokud byste pomocφ CSS2 definovali rozmφst∞nφ nap°. pro tiÜt∞nou strßnku, print preview na obrazovce nebo pro hlasov² v²stup, pou₧ili byste jin² typ mΘdia, a tedy i jin² formßtovacφ model. 
  6. Z°ejm∞ vßm trochu Φasu zabere "za₧itφ si" principu vizußlnφho formßtovßnφ, brzy ale zjistφte, ₧e tento zp∙sob nabφzφ mo₧nosti, kterΘ s tabulkami prost∞ nesvedete. P°φprava strßnek i jejich zm∞ny zaberou mnohem mΘn∞ Φasu a hlavn∞ strßnky budou lΘpe Φiteln∞jÜφ (zkuste vymazat ze sv²ch strßnek vÜechny tabulkovΘ tagy, kterΘ pou₧φvßte pro layout, a zjistφte, ₧e mßte asi tak o polovinu kratÜφ soubor). Jak si ukß₧eme pozd∞ji, dß se celkem snadno vy°eÜit i problΘm s r∙zn²m rozliÜenφm monitoru Φi se zm∞nou velikosti okna.   
  7.  
  8. Zßkladnφ rozd∞lenφ strßnky - sloupce a hlaviΦka 
  9. Na zaΦßtku je pot°eba urΦit zßkladnφ rozd∞lenφ strßnky. Pomocφ p°φkladu k≤du uvedenΘho v podtisku na stran∞ 143 vytvo°φte na strßnce t°i sloupce a hlaviΦku. V²Üka vÜech t°φ sloupc∙ bude automatickß - sloupec bude tak dlouh², aby se do n∞j veÜel jeho obsah. A pozor! Takto navr₧enß strßnka nemß problΘmy p°i zm∞n∞ rozliÜenφ ani p°i zm∞n∞ velikosti okna! 
  10. V²sledek pak vypadß tak, jak vidφte na obr. 1. 
  11. Pozici prvku v rßmci HTML strßnky urΦujφ vlastnosti position, top, right, bottom, left a float. Hodnotu vlastnostφ top, left, right a bottom lze samoz°ejm∞ zadßvat i v konkrΘtnφ dΘlce (nap°. v pixelech). 
  12. VÜimn∞te si, ₧e vlastnost position mß v tomto p°φklad∞ hodnotu absolute. Takov² blok v dokumentu je zcela vytr₧en ze svΘho normßlnφho umφst∞nφ (respektuje pouze zßkladnφ blok, co₧ je v tomto p°φpad∞ body) a je umφst∞n na pozici na strßnce, kterou udßvajφ top, left, right a bottom. Position m∙₧e mφt krom∞ absolute hodnotu relative, fixed nebo static. 
  13. Static je p°ednastavenß hodnota. Pokud tedy vlastnost position u n∞kter²ch element∙ neurΦφte, budou mφt tyto prvky prßv∞ hodnotu static a budou se zobrazovat v normßlnφm po°adφ za sebou, tak jak jsou zapsßny ve zdrojovΘm dokumentu. 
  14. Fixed je specißlnφ p°φpad absolutnφho urΦenφ pozice bloku, navφc vÜak je prvek jakoby p°ipevn∞n na stßle stejnΘm mφst∞ a nepohybuje se ani p°i rolovßnφ. 
  15. Relative - p°i tomto nastavenφ novou pozici bloku prohlφ₧eΦ vypoΦφtß s ohledem na normßlnφ tok, tzn. k normßlnφ pozici p°ipoΦφtß hodnoty top, left, right a bottom, a na tuto pozici blok umφstφ. Nßsledujφcφ elementy nejsou tφmto v∙bec ovlivn∞ny, co₧ v praxi znamenß, ₧e se mohou jednotlivΘ bloky vzßjemn∞ p°ekr²vat. 
  16. Vlastnost margin pro element body je p°idßna kv∙li prohlφ₧eΦi IE 5.X, kter² jinak prav² sloupec nezobrazφ sprßvn∞.   
  17.  
  18. Jemn∞jÜφ layout 
  19. PotΘ, co si definujete zßkladnφ rozd∞lenφ strßnky, m∙₧ete umφs¥ovat dalÜφ elementy dovnit° zßkladnφch sloupc∙ a urΦovat jejich pozici, co₧ je v²hodnΘ provßd∞t hlavn∞ pomocφ relativnφho umφst∞nφ a vlastnosti float. 
  20. Float vyu₧ijete hlavn∞ pro obtΘkßnφ (viz obr. 2). 
  21. IMG {float: left}   
  22. Takto urΦφte, aby vÜechny obrßzky byly posunuty doleva a ostatnφ obsah je obtΘkal od pravΘho hornφho rohu poΦφnaje. Pokud se vßm zrovna nehodφ, aby obrßzek byl obtΘkßn i nßsledujφcφmi odstavci, zajistφte to vlastnostφ clear. Tak nap°φklad deklarace 
  23. P {clear: left} 
  24. zajistφ, aby levß strana ₧ßdnΘho odstavce neobtΘkala jinΘ elementy. 
  25. Pro dolad∞nφ layoutu strßnky dob°e vyu₧ijete vlastnosti tzv. box modelu: margin, padding a border, tj. vn∞jÜφ a vnit°nφ odsazenφ a rßmeΦek. Tyto vlastnosti jsou souΦßstφ u₧ i prvnφ verze kaskßdov²ch styl∙. 
  26. Krom∞ t∞chto zßsadnφch vlastnostφ CSS2 definuje n∞kolik dalÜφch "vylepÜenφ". Jednφm z nich jsou vrstvy. V CSS2 mß ka₧d² blok na strßnce t°i dimenze umφst∞nφ. Krom∞ horizontßlnφ a vertikßlnφ pozice to je jeÜt∞ z-axis, kterß mß opodstatn∞nφ, pokud se bloky navzßjem vizußln∞ p°ekr²vajφ. Elementy s vyÜÜφ hodnotou (zadßvß se v cel²ch Φφslech) p°ekryjφ ty s ni₧Üφ hodnotou z-axis. 
  27. Zajφmav²mi vlastnostmi pro urΦenφ Üφ°ky a v²Üky bloku jsou krom∞ klasick²ch widht a height do druhΘ verze kaskßdov²ch styl∙ nov∞ p°idanΘ 'min-width', 'max-width', 'min-height' a 'max-height', kterΘ umo₧≥ujφ autor∙m strßnek omezit Üφ°ku a v²Üku bloku na urΦenou hodnotu. 
  28. V normßlnφm p°φpad∞ je obsah bloku "uv∞zn∞n" mezi jeho okraji. Ve specißlnφch p°φpadech vÜak m∙₧e obsah boxu le₧et ΦßsteΦn∞ nebo ·pln∞ mimo svΘ hranice, a to nejΦast∞ji tehdy, kdy₧ Üφ°ka Φi v²Üka bloku jsou urΦeny tak, ₧e se obsah nevejde do urΦenΘho mφsta a p°etΘkß ven za hranice boxu. Pro kontrolu tohoto "p°etΘkßnφ" lze vyu₧φt vlastnost overflow a urΦit tak, jak a jestli v∙bec mß b²t blok o°φznut. Vlastnost clip pak urΦφ velikost a tvar o°φznutφ. 
  29. Overflow mß tyto u₧iteΦnΘ hodnoty: hidden - obsah bude o°φznut, ale nebude mo₧nΘ prohlφ₧et jeho zbylou Φßst pomocφ klasickΘho rolovßnφ. Tuto hodnotu zvolφ asi ten, kdo bude chtφt pou₧φt pro rolovßnφ nap°. JavaScript; scroll - obsah bude o°φznut a bude ho mo₧nΘ prohlφ₧et pomocφ klasickΘho rolovßnφ. 
  30. Jedin²m tvarem podporovan²m v CSS2 pro vlastnost clip je obdΘlnφk. P°edpoklßdß se dalÜφ rozÜφ°enφ. V nßvrhu CSS3 je zatφm p°idßn tvar inset, co₧ je takΘ obdΘlnφk. Rozdφl je vid∞t na obrßzku 3. 
  31. A₧ budete zbavovat svΘ strßnky tabulek, nezapome≥te, ₧e koneΦnß Üφ°ka boxu na strßnce je sumou hodnot lev²ch a prav²ch vn∞jÜφch okraj∙ (margin), Üφ°ky rßmeΦku (border), vnit°nφch okraj∙ (padding) a Üφ°ky obsahu (width). Stejn∞ tak se poΦφtß v²Üka, s tφm rozdφlem, ₧e jde o hornφ a dolnφ hodnoty okraj∙ a rßmeΦku (top, bottom) a v²Üku (height).   
  32.  
  33. Novinky v CSS3 
  34. CSS2 je vÜak z°ejm∞ jenom zaΦßtkem v odliÜnΘm pojetφ layoutu strßnek. Zatφm zve°ejn∞nß pracovnφ verze t°etφ generace kaskßdov²ch styl∙ obsahuje krom∞ jinΘho modul, kter² umo₧nφ d∞lit obsah strßnky do vφce sloupc∙. A opravdu se nejednß o nic nezajφmavΘho! V²hody oproti tabulkov²m sloupc∙m jsou obrovskΘ: obsah bude moci p°etΘkat z jednoho sloupce do druhΘho podle dostupnΘho mφsta; bude mo₧nΘ urΦit si bu∩ Üφ°ku sloupc∙ a jejich poΦet vypoΦφtß prohlφ₧eΦ podle pot°eby, nebo naopak urΦit poΦet sloupc∙ a jejich Üφ°ka bude dopoΦφtßna prohlφ₧eΦem. Mo₧nΘ bude samoz°ejm∞ urΦit pevnou hodnotou jak pro Üφ°ku, tak i pro poΦet sloupc∙. 
  35. Vlastnostφ span bude mo₧nΘ vytvo°it element, jeho₧ Üφ°ka bude nap°φklad rovna t°em sloupc∙m, Φφm₧ se dß nap°φklad vytvo°it nad vφce sloupci nadpis. NovΘ jsou i n∞kterΘ vizußlnφ vlastnosti tohoto vφcesloupcovΘho modulu: barva, Üφ°ka a styl rozd∞lovacφ Φßry mezi odstavci, mezera mezi jednotliv²mi sloupci atd. SouΦßstφ nßvrhu t°etφ verze je i vlastnost, kterß urΦφ, zda mß b²t obsah umφst∞n uvnit° sloupce, nebo mezi sloupci. Dφky takovΘmu modulu bude snadnΘ vytvo°it z topografickΘho hlediska velmi profesionßlnφ WWW strßnky. 
  36. ObrovskΘ rozÜφ°enφ Φekß v CSS3 i tzv. box model, kde jednak p°ibudou hodnoty vlastnostφ, jednak dojde k rozÜφ°enφ skupiny vlastnostφ nynφ existujφcφch. 
  37. Otßzkou z∙stßvß, kdy se tato t°etφ generace styl∙ stane standardem a jak si s podporou jejφch nov²ch vlastnostφ pospφÜφ v²robci prohlφ₧eΦ∙. 
  38. So≥a ÄßΦkovß 
  39.  
  40. P°φklad k≤du vyu₧φvajφcφho CSS2 
  41. <html> <head> <style type="text/css"> body { margin: 0px; padding: 0px;} #hlavicka { position: absolute; width: 100%; height: 15%; top: 0; right: 0; bottom: auto; left: 0; border:1px solid #000; }#menu { position: absolute; width: 20%; height: auto; top: 15%; right: auto; left: 0; border:1px solid #000; }#menu2 {position: absolute; width: 20%; height: auto; top: 15%; right: 0; left: 80%; border:1px solid #000; }#main { position: absolute; width: 60%; height: auto; top: 15%; right: 0; left: 20%; border:1px solid #000; }</style> </head> <body> <div id="hlavicka">... </div> <div id="menu">... </div> <div id="menu2">... </div> <div id="main">... </div> </body> </html> 
  42.  
  43.  
  44. Prohlφ₧eΦe a CSS2 
  45. CSS2 je platn²m standardem od poloviny roku 1998. V²robci prohlφ₧eΦ∙ si vÜak dali naΦas, a proto ₧ßdn² Φty°i roky star² prohlφ₧eΦ podporu vizußlnφho formßtovacφho modelu nemß. Dobrou zprßvou pro vÜechny tv∙rce webov²ch strßnek je, ₧e naopak nov∞jÜφ verze vÜech b∞₧n∞ pou₧φvan²ch prohlφ₧eΦ∙ velmi dobrou podporu CSS2 obsahujφ. Jednß se o: 
  46. IE od verze 5.5; 
  47. Netscape od verze 6.0; 
  48. Mozzilu 1.0; 
  49. Operu od verze 5.0. 
  50. Proto₧e tyto prohlφ₧eΦe pou₧φvß 99 % nßvÜt∞vnφk∙ internetu, je dnes opravdu mo₧nΘ dodr₧et p°i vytvß°enφ layoutu strßnek doporuΦenφ konsorcia W3C. 
  51.  
  52.