FAQ

Φasto kladenΘ otßzky

FAQ znamenß frequently asked question nebo tak n∞co. Prost∞ Φasto kladenΘ dotazy. Pokud dostanu n∞jak² dotaz alespo≥ dvakrßt, tak ho sem umφstφm i s odpov∞dφ, abych na to nemusel odpovφdat pot°etφ.

HTML obecn∞ - Odkazy - Tabulky - Rßmy - Pozadφ - CSS - Aktivnφ prvky - Skripty

HTML obecn∞

Jak je to s uvozovkami v HTML zßpisu? nap°: <td width="50"> pat°φ tam ty uvozovky nebo ne? 
Podle specifikace 3.2 tam uvozovky byt nemusφ, pokud hodnota atributu neobsahuje mezeru nebo jinΘ divokΘ znaky. Ale kdo vφ, jak funguji v╣echny prohlφ╛eΦe. Ve specifikaci XML a XHTML tam uvozovky musejφ b²t v╣ude. Kdy╛ se dajφ v╣ude, tak se nic nezkazφ.
Ako mam spravit, aby pri zmene rozlisenia obrazovky bola www stranka stale v strede?
Nejjednodu╣╣φ zp∙sob je uzav°φt celou strßnku do tabulky s vycentrovßnφm <table align=center>, ale to mß spoustu jin²ch nev²hod.
Jin² zp∙sob je pou╛φt dvou zano°en²ch oddφl∙. P°φklad jedinΘho spolehlivΘho zßpisu: 
<div style="align: center" align="center"><div align="left" style="width: 700px; align: left">Obsah strßnky</div></div>
Seznam a Centrum u╛φvajφ tohoto spolehlivΘho zßpisu
<center><table width="760"><tr><td>Obsah strßnky</table></center>
Vφce o centrovßnφ (Sova v sφti)
Jak zm∞nit velikost pφsma?
Star╣φ zp∙sob je uzav°φt text do tagu <font> a jeho atributem size m∞nit velikost:
<font size="4">text</font>
vypadß takto: text
Je 7 stup≥∙ pφsma, 1 je mr≥avΘ, 3 b∞╛nß velikost a 7 nejv∞t╣φ.
Nov∞j╣φ zp∙sob zv∞t╣ovßnφ pφsma vychßzφ z pou╛itφ kaskßdov²ch styl∙ CSS, nap°. se do hlaviΦky strßnky vlo╛φ stylopis
<style>
body {font-size: 13px}
td {font-size: 12px}
h1 {font-size: 18px}
</style>

Tento zßpis nap°φklad ud∞lß pφsmo v celΘ strßnce (body) velikΘ 13 pixel∙, pφsmo v tabulce 12px a nadpisy h1 velikostφ 18px. Jsou i jinß pou╛itφ kaskßdov²ch styl∙ (CSS).
Jak ud∞lat, aby se pφsmo nedalo zv∞t╣it v prohlφ╛eΦi?
Kdy╛ se nastavφ velikost v pixelech (px) nebo typografick²ch bodech (pt), nep∙jde v Internet Exploreru zv∞t╣it. Pokud se velikost nenastavφ nebo se pou╛ijφ stupn∞ v tagu <font> (nebo hodnotami small, large apod. v css), pφsmo p∙jde zv∞t╣ovat. V Mozille nejde ud∞lat fixn∞ velkΘ pφsmo.
Text, u kterΘho chcete, aby ho u╛ivatelΘ b∞╛n∞ Φetli, nechte velikost zv∞t╣ovacφ. Nem∞lo by se d∞lat p°φli╣ malΘ pφsmo, jak je dnes Φasto k vid∞nφ.

Odkazy

Jak ud∞lat ╛lutou bublinu u odkazu?
<a href="n∞kam" title="Popisek odkazu v bublin∞">Text odkazu</a>
Jak odkaz otev°φt do novΘho okna?
<a href="n∞kam" target="_blank">Text odkazu</a>
Vφce informacφ: NovΘ okno otev°enΘ odkazem
Jak odkazy otevφrat do stßle jednoho novΘho okna?
<a href="n∞kam" target="libovolne_jmeno">Text odkazu</a>,
ale pozor, to okno, kam se to otev°elo, m∙╛e z∙stßvat na pozadφ, tak╛e si toho Φtenß° nev╣imne.
Jak otev°φt odkaz do okna bez nabφdky, stavovΘho °ßdku, adresy a li╣t?
Je pot°eba pou╛φt javascript:
<a href="n∞kam.html" onclick="open('n∞kam.html', 'jmenookna', ''); return false">Text odkazu</a>
mß to vφc nastavenφ, kterΘ rozebφrßm u metody window.open
Jak odkazem strßnku jenom odrolovat na urΦitΘ mφsto (nechodit na jinou strßnku)?
Odkaz se namφ°φ na zßlo╛ku. Ta se nejprve musφ vlo╛it do strßnky na to sprßvnΘ mφsto.
<a name="zalozka"></a>
a pak se na ni m∙╛e odkazovat pomocφ k°φ╛ku:
<a href="#zalozka">Odkaz jinam na tutΘ╛ strßnku</a>
Vφce v textu o zßlo╛kßch.
Jak za°φdφm, aby odkaz vypadal jako tlaΦφtko?
Je vφce mo╛nostφ, asi nejlep╣φ je vyu╛φt CSS styly. Podφvejte se na p°φklad textovΘho odkazu jako tlaΦφtko a zobrazte si zdroj.
Rada by som vedela, ako mozem napisat hypertextovy odkaz tak, aby mi text nepodciarklo.
Je pot°eba do hlaviΦky strßnky vlo╛it stylopis:
<style>
a:link, a:visited {text-decoration: none}
</style>
Kdy╛ tam dßte jenom a a nikoliv to a:link, a:visited, tak to nebude fungovat v IE4.
Jak ud∞lat odkaz, kter² m∞nφ barvu p°i p°ejφ╛d∞nφ my╣φ, t°eba na modrou?
Je pot°eba do hlaviΦky strßnky vlo╛it stylopis:
<style>
a:hover {color: blue}
</style>
Pot°ebuju, aby kdy╛ namφ°φm odkaz na dokument Wordu *.doc, aby se neotevφral, ale stßhnul. Jak to ud∞lat?
Vlastn∞ to nejde za°φdit. Jestli se budou soubory (ne HTML) otevφrat nebo uklßdat, zßvisφ na nastavenφ poΦφtaΦe u klienta. Nevφm ani p°esn∞ kde se to nastavuje. Mß to n∞co spoleΦnΘho s takov²m dialogem, kdy se prohlφ╛eΦ ptß, jestli chci otev°φt soubor rovnou nebo ulo╛it na disk. Pod tφm je volba "p°φ╣t∞ se ji╛ neptat".
N∞komu se to prost∞ otevφrß a n∞komu ne. Tak╛e doporuΦuji zabalit ten doc do zipu, proto╛e zip mß v∞t╣ina lidφ nastaven² na stahovßnφ. Podobn∞ i u soubor∙ jin²ch typ∙, nap°. pdf.
Jinß mo╛nost je nastavit v mime-types serveru doc jako archive/zip (pokud m∙╛ete konfigurovat server). Pak se to bude stahovat poka╛dΘ, ale je to dost prasßrna.
Jinou mo╛nost poradil Jakub Vrßna: pou╛φt HTTP hlaviΦku "Content-Disposition", kterß lze poslat nap°. v PHP nebo mo╛nß jde nastavit i na serveru. Nap°.
Content-Disposition: attachment; filename="fname.ext"
jak otev°φt program z odkazu, ani╛ by se zobrazilo okno, zda chci program otev°φt, nebo ulo╛it. P°φklad : <a href="program.exe" target="_blank">spus╗</a>
To na╣t∞stφ nejde ud∞lat. Je to bezpeΦnostnφ opat°enφ Internet Exploreru. Dovedete si p°edstavit, ╛e by se z webu automaticky spou╣t∞ly programy? Katastrofa. U╛ivatel si m∙╛e v nastavenφ toto zabezpeΦenφ vypnout, jmenuje se to SoftwarovΘ oprßvn∞nφ kanßlu.

Tabulky

Jak dosßhnout toho, abych hodnoty ze dvou sloupc∙ v tabulce (na jednom °ßdku) mohl pou╛φt k matematickΘmu v²poΦtu a v²sledek abych dostal v dal╣φm sloupci (na stejnΘm °ßdku)?
Odpov∞∩ je jednoduchß: NEJDE TO. Jazyk HTML je pouze zobrazovacφ. Ten problΘm je pot°eba n∞jak obejφt. (Uva╛uje se o pou╛itφ atribut∙ axis a axes, ty ale zatφm v prohlφ╛eΦφch nefungujφ.)
Jak ud∞lat, aby m∞la tabulka tenkou jednopixelovou m°φ╛ku? Po°ßd mi to d∞lß 2 pixely.
Dß se to ud∞lat pomocφ CSS styl∙ aplikovan²ch na bu≥ku td, ale jednodu╣╣φ je pou╛φt css2 vlastnost border-collapse na tabulku:
<table border="1" style="border-collapse: collapse">
funguje to sice jenom v nov∞j╣φch Explorerech a Mozillßch, ale ty u╛ p°eva╛ujφ.
Pot°ebuju zm∞nit pφsmo v celΘ tabulce a nechce se mi to psßt po bu≥kßch. Jde to n∞jak najednou?
StaΦφ nastavit CSS styl, nap°. takto:
<style>
td {font-family: Arial; font-size: 13px}
<style>

pokud by se to m∞lo t²kat jenom jednΘ z vφce tabulek na strßnce, pou╛ijφ se t°φdy.

Rßmy

Jak po kliknutφ na odkaz otev°φt dv∞ strßnky ka╛dou v jinΘm rßmu.
Dva zp∙soby. 
1. Jednodu╣╣φ je, kdy╛ si dß╣ ty dva frejmy vedle sebe a ud∞lß╣ strßnku, kterß je spoji. Potom bude╣ naΦφtat tu strßnku na mφsto, kde majφ b²t ty dva.
2. Elegantn∞j╣φ a t∞╛╣φ je tohle:
<a href="stranka1" target="ram1" onclick="parent.ram2.location.href = 'stranka2.htm'">
N∞kdy je tam pot°eba napsat parent.parent vφcekrßt za sebou. 
Ud∞lal jsem si rßmy, ale naskytl se problΘm: Kdy╛ tam nap°φklad mßm odkaz na Seznam a kliknu na n∞j, objevφ se sice strßnka Seznamu, ale m∙j lev² rßm (obsah) tam z∙stane. Co mßm tedy ud∞lat pro to, aby se tam ten rßm nezobrazil?
Do odkazu <a href="http://seznam.cz> p°idejte target=_top, tak╛e to bude vypadat takhle:
<a href="http://seznam.cz target="_top">Seznam</a>
Target="_top" zp∙sobφ, ╛e se odkaz p°epne do celΘho okna. Zkuste takΘ experimentovat s hodnotami _blank a _parent.

Pozadφ

Dal╣φ odpov∞di hledejte na strßnce V╣e o pozadφ strßnky a objekt∙ v HTML a CSS

Jak nastavit pozadφ v rßmcφch, tak aby kopφrovalo skuteΦnou velikost rßmce? Pokud si vytvo°φm vlastnφ pozadφ (v Corelu 8) a zadßm cestu v nastavenφ rßmce, zobrazφ se mi p°es celou obrazovku n∞kolikrßt vedle sebe a pod sebou. Existuje n∞jak² p°φkaz, kter² by pozadφ p°izp∙sobil velikosti rßmce?
Velikost pozadφ nelze p°izp∙sobit velikosti rßmu. To╗ smutnß praxe. 
Pozadφ musφ b²t v╛dy soubor gif nebo jpeg. Pokud Corel vyexportuje html, tak to je na nic. Proto╛e jsou gif i jpeg bitmapovΘ formßty, tak je nejde roztahovat bez ztrßty kvality, jak by to bylo mo╛no s corelovsk²mi vektorov²mi formßty. 
Existujφ ale urΦitΘ zp∙soby, jak pozadφ n∞jak zmanipulovat. Prostudujte si v p°ehledu CSS - p°ehled vlastnostφ a hodnot vlastnosti pozadφ, mrkn∞te se na vklßdßnφ pozadφ do tabulek ve formßtovßnφ tabulek
a na Design pomocφ tabulek.
╚astou praxφ je postup p°esn∞ opaΦn² -- nep°izp∙sobovat pozadφ podle textu, ale text podle ╣φ°ky pozadφ. Text se vklßdß do rozm∞rovanΘho oddφlu (tag div v HTML) nebo do p°esn∞ ╣irokΘ tabulky. 
Nebo se dß ud∞lat "pseudopozadφ". Obrßzek vlo╛it do strßnky a nastavit mu styl pozicovßnφm tak, aby p°ekr²val celou ╣φ°ku strßnky, ╣oupnout ho nahoru a nastavit mu z-index na n∞co zßpornΘho.
Osobn∞ doporuΦuji zam∞°it se pro zaΦßtek na d∙le╛it∞j╣φ v∞ci, ne╛ je pozadφ strßnky. D∙vodem je zejmΘna velk² datov² p°enos a matenφ Φtenß°e. Jß jsem t°eba po dlouholet²ch zku╣enostech od aplikace pozadφ zcela ustoupil, stejn∞ jako v∞t╣ina webov²ch profesionßl∙ (t°eba╛e se k nim nepoΦφtßm). 
Potrebuji vycentrovat pozadi (background) na stred stranky a to jak vertikalne tak horizontalne. Aby byla zobrazena jen jedna kopie obrazku, ktery bude pouzit pro pozadi. Dale bych se chtel zeptat jestli uz ses setkal se statickym pozadim. Pozadi stoji a text a grafika se hybaji pres stojici pozadi.
Umφstit obrßzek na pozadφ jenom jednou a doprost°edka jde jen v n∞kter²ch prohlφ╛eΦφch. Na╣t∞stφ nejpou╛φvan∞j╣φ prohlφ╛eΦe MSIE 4 a 5 to dokß╛φ. H∙°e je na tom Netscape 4, ten to nedokß╛e dßt doprost°ed. Jak se to d∞lß: Pou╛φvajφ se na to CSS, kaskßdovΘ styly. Jde to zapsat dv∞ma zp∙soby, jß uvedu ten lehΦφ (bez stylopisu), kdy deklaraci uvedu p°φmo v tagu <body>:
<body style=" background: url('cesta/jmenosouboru.gif') fixed no-repeat center center">
Bacha na p°eklep. Malß chybka zp∙sobφ nefunkΦnost. Ta ΦßreΦka ' se d∞lß alt+39. V²znam hodnot lze najφt v p°ehledu CSS, tam jsou uvedeny i p°φklady. Je dobrΘ v²sledek vyzkou╣et ve vφce prohlφ╛eΦφch a zhodnotit v²sledek!
V ΦistΘm HTML bez CSS lze ud∞lat pouze "nerolovacφ" pozadφ deklaracφ <body backround="cesta/soubor.gif" bgproperties="fixed">. V CSS se to d∞lß vlastnostφ background-atachment: fixed. Pozor na p°φli╣ velk² obrßzek -- jednak se dlouho p°enß╣φ (a dokud se nep°enese, tak se nezobrazφ v∞t╣inou nic) a jednak zpomaluje klienta (zejmΘna pr∙hlednΘ pozadφ p°i rolovßnφ).

CSS

Pot°ebuji, aby se mi ned∞laly mezery nad a pod odstavcem.
Nejjednodu╣╣φ je zßpis:
<p style="margin-top: 0px; margin-bottom: 0px">
PraktiΦt∞j╣φ je zßpis najednou pro celou strßnku do stylopisu v hlaviΦce strßnky:
<style>
p {margin-top: 0px; margin-bottom: 0px}
p {margin: 0px} /*Je╣t∞ jednou pro Netscape */
</style>
Vφce v textu o pou╛itφ CSS.
Jak mßm p°i pou╛itφ CSS zarovnat v tagu "table" tu tabulku na st°ed? Nebo snad staΦφ normßln∞ napsat: align="center" a je to sprßvn∞? To m∞ trochu nepasuje do CSS.
Pomocφ CSS nelze zarovnat celou tabulku na st°ed strßnky, musφ se pou╛φt html atribut align=center nebo se tabulka musφ umφstit do vyst°ed∞nΘho odstavce. Nejspolehliv∞j╣φ je pou╛φt <center> okolo tabulky. Je fakt, ╛e to do CSS moc nepasuje. Vlastnost align se vztahuje k zarovnßnφ VNIT╪KU elementu, nikoli na samotn² element. Neodpovφdß to variabilit∞ atributu align v HTML.
Centrovßnφ tabulky se v CSS musφ d∞lat takhle:

<p style="text-align: center">
<table style="margin-left: auto; margin-right: auto">

to obalovacφ pΘΦko m∙╛e b²t <div>
styl u obalovacφho prvku je pro Explorer,
styl v tabulce (margin) je pro Mozillu a jinΘ standardnφ prohlφ╛eΦe.
Nefunguje mi vlastnost vertical-align!
Internet Explorer podporuje vertikßlnφ zarovnßnφ fakticky jenom u bun∞k tabulky (<td>).
Jak mßm "zalockovat" velikost pφsma, aby se mi nezv∞t╣ovalo, kdy╛ si u╛ivatel p°epne na v∞t╣φ font?
V Internet Exploreru staΦφ p°edepsat pφsmu velikost v pixelech, nap°.
<span style="font-size: 13px">
nebo totΘ╛ ud∞lat pomocφ stylopisu. (V jin²ch prohlφ╛eΦφch se, pokud vφm, zv∞t╣uje i takto zadanΘ pφsmo.)
Pouzivam oddeleni kapitol tagem <hr>. V rozliseni 800*600 vypada stranka relativne dobre, ale v 1024*768 se text zkrati, kdezto obrazek zustava stejny a dojde k tomu, ze oddelovaci linka je ve vysce obrazku z predchozi kapitoly. Dalo by se nejak udelat, aby obrazek byl hezky obtekan textem a oddelovaci linka vytvorena tagem <hr> byla vzdy pod obrazkem?
Tak tohle je zrovna brnkacka. Pridej si do stylopisu radek
hr {clear: both}
Zaruci to, ze kazda cara bude cekat na ukonceni vsech plovoucich elementu. Kdybys to chtel delat bez css, tak to taky pujde, ale bude to pakarna: Pred kazdou caru bys musel dat <br clear="all">. Doporucuji prvni postup.
Lze zm∞nit vzhled formulß°ovΘho v²b∞rovΘho boxu pomoci CSS, tak jako lze pro IE 5.5 volit barvu li╣ty?  Ani primy zßpis stylu se scroll-..-color polo╛kami mi nefunguje
Ud∞lal jsem pßr experiment∙ a je to opravdu tak -- barvu rolovacφ li╣ty u tagu <select> nejde nastavit! V∙bec nijak. TotΘ╛ u barvy pozadφ checkboxu a selectu. Dß se jedin∞ zpr∙hlednit v IE pomocφ filtr∙.
U tagu select mi nefunguje z-index.
To je chyba prohlφ╛eΦ∙ nebo systΘmovß chyba. Select boxy prost∞ budou v╛dy navrchu. Podobn∞ obΦas chybuje iframe a flashovß animace.
V Internet Exploreru 6 se mi nebarvφ rolovacφ li╣ta!
Je pot°eba p°idat definici barvy li╣ty pro tag <html> nebo zru╣it <!doctype>. Tak╛e te∩ to vypadß nap°. 
body, html {scrollbar-base-color: yellow}
Jde pomocφ CSS nastavit odkazu target?
Ne, to nejde.

Aktivnφ prvky

Jak mßm naprogramovat, aby vypln∞n² formulß° p°i╣el na mojφ e-mailovou adresu?
Napsal jsem o tom celou strßnku formulß° na mail.
DoporuΦuji zaregistrovat se na slu╛b∞ www.mailform.cz nebo www.blueboard.cz a sledovat pokyny. Je to nejdokonalej╣φ °e╣enφ, proto╛e d°inu ji╛ n∞kdo odvedl a te∩ se tam vyu╛φvajφ plody. Pokud by to z n∞jak²ch d∙vod∙ ne╣lo, dß se to °e╣it i svΘpomocφ:
Nejrychlej╣φ °e╣enφ bude patrn∞ toto:
<form action="adresa@n∞kam.cz" method="post" enctype="text/plain"><input ....>Normßlnφ obsah formulß°e</form>
Pak to staΦφ akorßt vyzkou╣et. Po╣tu odesφlß klient, forma bude vid∞t. Pokud by nevyhovoval zasφlan² formßt dat, zkuste experimentovat s enctype. Do <form > se dß zkusit atribut enctype="multipart/form-data" .
Dß se to ud∞lat i spolehliv∞ji p°es serverov² program, ale poskytovatelΘ to nabφzejφ z°φdka. Jß t°eba vyu╛φvßm PHP skripty, ale na to je pot°eba mφt serverovß prßva. 
Ak mam na www nejaky dotaznik, kt. dana osoba vyplnit - ci je mozne, aby mi tento dotaznik dosiel mailom aj s diakritikou. Zatial mi miesto diakritiky posiela cisla ....
To je prßv∞ to enctype="text/plain".
M∙╛e╣ mi prosφm poslat tv∙j on-line vyhledßvaΦ?
Ten fulltextov² vyhledßvaΦ nenφ m∙j, Φili ti ho nem∙╛u poslat. Jß jsem takΘ zkou╣el naprogramovat sv∙j, ale je lep╣φ nakonec stejn∞ p°ejφt na Atomz. Jak se to d∞lß:
1. www.atomz.com
2. registrace, kde se zadßvß mail a adresa strßnek
3. po╣lou html k≤d formulß°e, p°idß se to do strßnek a u╛ to chodφ
4. m∙╛e╣ si nastavit spoustu v∞cφ vΦetn∞ vzhledu vyhledßvacφch strßnek. D∞lß se to po nalogovßnφ na server atomz a ·pravou n∞jak²ch templates a v╣eho dal╣φho.
V poslednφ dob∞ (psßno 2002) mßm zprßvy, ╛e Atomz uzav°el registrace zdarma.
Dß se za°φdit vyhledßvßnφ i bez registrace na Atomz?
Jo, dß se vyu╛φt Google. N∞komu to nefunguje, proto╛e mu Google na strßnky nechodφ (to se stßvß z°φdka). Do strßnky se umφstφ tento formulß°: 
Vyhledßvßnφ na www.cokoliv.cz/moje/ pomocφ systΘmu Google <br><form
action="http://www.google.com/search" target="_blank">
<input name="as_q" size=20>
<input type="hidden" name="as_sitesearch" value="cokoliv.cz">
<input type="hidden" name="num" value="10">
<input type="hidden" name="btnG" value="Vyhledat Googleem">
<input type="submit" value="Vyhledat">
</form> 
Do jednoho skrytΘho polφΦka se musφ zadat zaΦßteΦnφ fragment adresy prohledßvan²ch strßnek.«el, nedß se to omezit na Φßst domΘny, prohlevßvß to celou domΘnu cokoliv.cz. Tak╛e pokud mßte svΘ strßnky se jmΘnem adresß°e na konci, tak to nefunguje. V²sledky formulß°e se otev°ou v novΘm okn∞. Bude to strßnka ze serveru Google.com
Jak ud∞lat na strßnce rozbalovacφ menu, aby se p°i p°ejetφ odkazu objevily dal╣φ odkazy s podrobn∞j╣φ nabφdkou? T°eba jako je to vpravo naho°e na strßnce microsoft.com.
To nenφ ╛ßdnß sranda. Musφ se to naprogramovat v Javascriptu. Nic pro zaΦßteΦnφky (taky mi to je╣t∞ nefunguje). Nebo to lze odn∞kud ukrßst a p°epsat hodnoty odkaz∙. T°eba z Microsoft.com.
Jak na strßnku dostanu nßv╣t∞vnφ knihu, guestbook?
Je pot°eba ji bu∩ naprogramovat v n∞jakΘm serverovΘm skriptu, nebo se zaregistrovat na n∞jakΘ slu╛b∞, kterß to nabφzφ zdarma. T°eba www.blueboard.cz nebo www.guestbook.cz.

Skripty

Jak poznßm, jestli mßm na n∞co pou╛φt JavaScript, nebo n∞co serverovΘho, t°eba PHP?
Obecn∞ se dß °φci, ╛e kde nenφ pot°eba uklßdat informace, staΦφ JavaScript. Jakmile je ale pot°eba ulo╛it informaci pro pozd∞j╣φ pou╛itφ, je nutnΘ nasadit serverov² skript. Ne v╛dy je ale t°eba programovat, proto╛e n∞kterΘ v∞ci nabφzejφ jako slu╛bu vzdßlenΘ servery.
1. Mam zacit s klasickym HTML jazykem?
2. Nebo rovnou se zacit ucit JavaScript, dle knihy JavaScript - David Flanagan - Kompletni pruvodce.
3. Jak spolu souvisi HTML a JavaScript - daji se vedomosti z HTML vyuzit pri tvorbe www stranek pomoci JavaScriptu?
O JavaScriptu: nema VUBEC smysl s nim zacinat, pokud neumis delat stranky v HTML. Skripty jsou jenom slehackou na dortu, kde korpus tvori HTML jazyk.  Navic dnes neexistuje globalne pouzitelna verze JavaScriptu (Microsoft ma svuj vlastni), takze odladit aplikaci pro vsechny prohlizece je drsny ukol, se kterym si poradi jenom opravdovi fest profici. Vysledek ovsem ani pak neni nijak uzasny.
JavaScript je zjednodusene receno zpusob, kterym muzes pohybovat s kusy kodu HTML. Dam asi priklad: odstavec cervenym pismem se udela v HTML takhle (pouzivam CSS styly):
<p style="color: red" >Text odstavce</p>
Javascript pritom umi treba po kliknuti na tenhle odstavec zmenit barvu textu na modrou. Dela se to rozsirenim kodu o atribut onclick, jehoz hodnota uz je skript:
<p style="color: red" onclick="this.style.color = blue">Text odstavce</p>,
coz ale funguje jenom v Exploreru, protoze je to Microsofti javaScript. Aby to fungovalo v Netscape, musi se odstavec pojmenovat atributem id:
<p style="color: red" id="odstavec" onclick="document.ids.odstavec.color = blue">
Aby to fungovalo v obou prohlizecich, musis napsat do kodu podminku, ktera bude testovat prohlizec. Jak jiste podle tohoto prikladu chapes, delani dobrych skriptu neni zadna sranda. Hodne lidi udela skript, ktery funguje jenom nekde, coz ale ti autori nikdy nezjisti, protoze to jinde nezkusi, takze si mysli, ze umi psat skripty. Proste jsi-li zacatecnik, vykasli se na Javascript.
Potreboval bych vedet jak docilim toho abych mel na 1 strance nekolik obrazku a po kliknuti na jeden z nich se zobrazil na dalsi strane s jeho nßzvem.
To je potreba udelat pro kazdy obrazek novou stranku, na ktere bude ten obrazek a jeho nazev jako text. Pokud by tam ten nazev byt nemusel, nemusi se delat nova stranka a staci odkaz namirit na ten obrazkovy soubor
H╡adßm fciu alebo script, ktor²m by som zakßzal pou╛itie pravΘho tlaΦφtka my╣i na strßnke (napr. aby sa nedal stiahnu╗ obrßzok).
Dß se to napsat v JavaScriptu, ale je to zbyteΦnΘ, proto╛e zku╣enφ u╛ivatelΘ dokß╛φ stahovat obrßzky i zdroje i bez pravΘho tlaΦφtka (nap°. uklßdßnφm, Teleportem, anal²zou zdroje, vyta╛enφm z cache, star╣φm prohlφ╛eΦem, matenφm escapem atd.).
Jakmile dß╣ jednou na web obrßzek, tak se musφ╣ smφ°it s tφm, ╛e p∙jde stßhnout.
Kdybys p°ece cht∞l ten skript psßt, tak se p°i kliknutφ zji╣╗uje, jestli je event.button rovnou 2 (pravΘ tlaΦφtko). Jestli jo, tak se to zablokuje t°eba alertem. Tak╛e t°eba
<body onmousedown="if(event.button == 2) alert('neklikat!')">
Zajφmalo by m∞, jestli lze JavaScriptem n∞co ulo╛it a poslΘze ulo╛enß data n∞jak dßle vyu╛φvat. 
Nejde to. Je to nejv∞t╣φ omezenφ JavaScriptu, d∙vodem je bezpeΦnost. JedinΘ informace, kterΘ se dajφ uklßdat, jsou cookies, ale ty jsou moc malΘ, nestßlΘ a p°φstupnΘ jenom klientovi.

XML

Jak psßt v XML b∞╛nΘ strßnky?

Poslednφ dobou zφskßvßm pocit, ╛e XML je sice krßsnß datovß struktura, ale pro tvorbu "b∞╛n²ch strßnek" se jaksi nehodφ. V╣echno tam mß n∞jakΘ ALE. Asi nejlep╣φ je p°φmΘ linkovßnφ CSS styl∙ do XML. Hodn∞ zßklad∙ je uvedeno a www.kosek.cz a dokud to nebudu um∞t lΘpe ne╛ Jirka (a to asi nebude nikdy), netroufßm si o tom psßt.

Hlavnφ problΘmy stavby b∞╛n²ch (textov∞ bohat²ch) strßnek pomocφ XML jsou dva:

NejΦast∞ji se pro tvorbu strßnek z XML pou╛φvß XSLT transformace. XML se sna╛φ o p°edßnφ kompletnφ strukturovanΘ informace v dokumentech a XSLT ty informace transformuje do jin²ch dokument∙. V╛dy jedna ku jednΘ -- jeden v²stupnφ dokument odpovφdß jednomu vstupnφmu. To je sice krßsnß vlastnost, ale tv∙rci strßnek °e╣φ obvykle n∞co ·pln∞ jinΘho ne╛ problΘm jedna ku jednΘ. ╪e╣φ to, jak z vφce (fragmentßlnφch) soubor∙ sesklßdat jednu strßnku, p°φpadn∞ vφce strßnek (problΘm n ku n). Obvykle to °e╣φ PHP (nebo CGI) na stran∞ serveru. Pokud bych cht∞l to samΘ d∞lat v XML, tak bych musel hodn∞ prasit.

o tvorb∞, ·dr╛b∞ a zlep╣ovßnφ internetov²ch strßnek

Pφ╣e Yuh∙, dusan@pc-slany.cz

Hledßnφ:

Jak psßt web: www.jakpsatweb.cz

Pφ╣e Yuh∙: http://dusan.pc-slany.cz, mail: dusan@pc-slany.cz

Poslednφ aktualizace 10.12.2003