SouΦasn² v²voj standard∙
Konsorcium W3C rozhodn∞ nezahßlφ, stßle pracuje na tvorb∞ nov²ch a vylepÜovßnφ stßvajφcφch standard∙. Proto vznikl tento p°ehledov² Φlßnek, mapujφcφ zm∞ny n∞kter²ch d∙le₧it²ch norem. Mimo jinΘ se doΦtete, jak bude vypadat dalÜφ verze jazyka XHTML, co novΘho nßm umo₧nφ t°etφ verze kaskßdov²ch styl∙ a co se d∞je okolo XML.
W3C je bezesporu hlavnφm hybatelem v²voje standard∙ pro web. Z jeho dφlny vzeÜly fundamentßlnφ zßklady webu jako (X)HTML nebo kaskßdovΘ styly. Pokud se o tomto konsorciu chcete dozv∞d∞t vφce, mohu vßm doporuΦit Φlßnek Martina Snφ₧ka Nebojte se standard∙! W3C samoz°ejm∞ nevytvß°φ jenom tyto dv∞ specifikace, ale celou °adu dalÜφch. O n∞kter²ch z nich se m∙₧ete doΦφst ve Φlßnku Marka Prokopa P°ehled standard∙ W3C. Od vydßnφ tohoto Φlßnku ji₧ ub∞hl vφce ne₧ rok, a proto je Φas si zrekapitulovat cestu, kterou za tu dobu n∞kterΘ z nich uÜly.
XHTML
Jazyk XHTML je bezesporu nejznßm∞jÜφ a nejrozÜφ°en∞jÜφ aplikacφ XML. Jeho poslednφ verzφ je zatφm doporuΦenφ XHTML 1.1, kterΘmu se celkem poda°ilo zbavit v∞tÜiny neduh∙ po sv²ch p°edch∙dcφch. P°esto W3C nehodlß p°eÜlapovat na mφst∞ a p°ipravuje novou verzi XHTML 2.0. Jak jsem ji₧ psal ve svΘm Φlßnku XHTML 2.0 û prvnφ ve°ejn² nßvrh, tato verze nebude zp∞tn∞ kompatibilnφ. Toto rozhodnutφ rozbou°ilo diskuze na mnoha f≤rech vΦetn∞ toho na Intervalu a nenφ se Φemu divit. XHTML je nejd∙le₧it∞jÜφm jazykem celΘho webu a jakßkoliv jeho zm∞na s sebou v₧dy p°inesla bou°livΘ reakce.
Popis novinek v XHTML 2.0 najdete ve v²Üe zmi≥ovanΘm Φlßnku. DoporuΦenφ je zatφm stßle ve stßdiu pßtΘho pracovnφho nßvrhu (5th Working Draft) a zb²vß jeÜt∞ vy°eÜit spoustu problΘm∙. Na mn∞ osobn∞ norma p∙sobφ spφÜe rozporupln∞. Na jednu stranu oce≥uji snahu W3C vytvo°it skuteΦn∞ siln² jazyk pro psanφ strßnek, zohled≥ujφcφ vÜechny aspekty webdesignu, ale zßrove≥ mi n∞kterΘ kroky p°ipadajφ a₧ p°φliÜ dogmatickΘ. Nap°φklad totßlnφ zapomenutφ elementu img ve prosp∞ch obecnΘho object mi nep°ijde p°φliÜ Ü¥astnΘ. Obrßzky jsou natolik specifickou souΦßstφ webu, ₧e by si rozhodn∞ zaslou₧ily ponechat vlastnφ element.
DalÜφm krokem, kter²m si nejsem zcela jist, je vypuÜt∞nφ formulß°∙ z XHTML doporuΦenφ a jejich nahrazenφ vlastnφm jazykem XForms. Stßvajφcφ formulß°e jsou podle m∞ jednoduch²m a p°itom siln²m nßstrojem, jak zφskßvat data od u₧ivatel∙. Nevφm, jestli jejich nahrazenφ novou slo₧itou XML aplikacφ je zrovna nejvhodn∞jÜφ.
Naopak Inline Text Module, ve kterΘm je soust°ed∞na v∞tÜina znaΦek pro sΘmantickΘ znaΦkovßnφ textu, z∙stßvß pro m∞ zcela nepochopiteln∞ tΘm∞° beze zm∞n. Uva₧uje se pouze o vypuÜt∞nφ elementu strong, k Φemu₧ nevidφm ₧ßdn² rozumn² d∙vod. Mßm pocit, ₧e prßv∞ na znaΦky pro sΘmantickΘ Φlen∞nφ textu by m∞l b²t kladen hlavnφ d∙raz.
V ka₧dΘm p°φpad∞ asi ub∞hne jeÜt∞ hodn∞ Φasu, ne₧ finßlnφ doporuΦenφ XHTML 2.0 spat°φ sv∞tlo sv∞ta. Uvidφme, k jak²m zm∞nßm za tu dobu jeÜt∞ dojde.
KaskßdovΘ styly
Stejn∞ jako u XHTML, ji₧ delÜφ dobu se chystß novinka i ve sv∞t∞ kaskßdov²ch styl∙, v podob∞ CSS3. U₧ p°edchozφ doporuΦenφ bylo pom∞rn∞ komplexnφm dokumentem, jeho₧ vÜechny mo₧nosti zatφm neimplementoval ani jeden z prohlφ₧eΦ∙ (i kdy₧ Mozilla i Opera jej zvlßdajφ na velmi sluÜnΘ ·rovni). A CSS3 hodlß jφt jeÜt∞ dßle.
Modularizace
Nejv∞tÜφm rozdφlem oproti CSS2 je rozd∞lenφ celΘho CSS3 do n∞kolika nezßvisl²ch modul∙, kterΘ jsou schvalovßny samostatn∞, jde tedy o samostatnß doporuΦenφ. W3C si od tohoto kroku slibuje zp°ehledn∞nφ celΘho doporuΦenφ, vΦetn∞ mo₧nosti odkazovat zvlßÜ¥ na jednotlivΘ moduly mφsto na jeden obrovsk² dokument. A takΘ prohlφ₧eΦe si mohou vybrat, kterΘ moduly budou podporovat.
NovΘ selektory
Co se t²Φe novinek ve t°etφ verzi kaskßdov²ch styl∙, p°edevÜφm na nßs op∞t Φekß dalÜφ dßvka selektor∙. ZlepÜena bude prßce s hodnotami atribut∙. Nov∞ budeme moci vyu₧φvat i negaci selektor∙ pomocφ pseudo-t°φdy :not(), nap°φklad selektor :not([href]) vybere vÜechny elementy, kterΘ nejsou zßrove≥ odkazem.
Velk² posun dop°edu je patrn² i v oblasti pseudo-t°φd a pseudo-element∙. P∙jde vybφrat nap°φklad elementy na zßklad∞ toho, zdali obsahujφ urΦit² text, nebo v zßvislosti na po°adφ ve svΘm rodiΦovskΘm elementu. Takto bychom m∞li b²t schopni velmi jednoduÜe za°φdit, aby se lichΘ °ßdky tabulky vykreslovaly jinou barvou ne₧ sudΘ a aby prvnφ a poslednφ °ßdky byly zv²razn∞ny. P°ibude takΘ novß vßrka pseudo-t°φd pro prßci s prvky formulß°∙. Nov∞ mohou b²t v selektorech brßny v potaz i jmennΘ prostory (namespaces), z Φeho₧ lze vid∞t snahu p°iblφ₧it CSS vφce obecnΘmu XML ne₧ jeho konkrΘtnφ aplikaci, XHTML.
Popis chovßnφ elementu
Jedna z podstatn²ch novinek se skr²vß v modulu BECSS, neboli Behavioral CSS. Jde o metodu, pomocφ nφ₧ lze p°i°azovat element∙m pomocφ klasick²ch selektor∙ nikoliv pouze vzhled, ale i chovßnφ, vyjßd°enΘ prost°ednictvφm klientskΘho skriptu. Nßznak, jak by vÜe mohlo vypadat v praxi, najdete ve Φlßnku P°i°azenφ skriptu stylem. Pokud BECSS nalezne podporu v prohlφ₧eΦφch, p∙jde podle mΘho nßzoru o velmi u₧iteΦnou technologii. Samoz°ejm∞ ne vÜechny ·lohy lze °eÜit pomocφ klientskΘho skriptovßnφ, ale nap°φklad takovΘ Φasto pou₧φvanΘ grafickΘ efekty jak²m je t°eba rollover si o takovou technologii p°φmo °φkajφ.
VφcesloupcovΘ rozvr₧enφ
V CSS3 se takΘ poprvΘ setkßme s vφcesloupcov²m rozvr₧enφm. Odstavc∙m budeme moci nastavit, aby jejich obsah byl vykreslen do vφce sloupc∙ namφsto nyn∞jÜφho jednolitΘho boxu. Samoz°ejm∞ p∙jde ovlivnit poΦet sloupc∙, mezera mezi nimi a p°ibudou i dalÜφ vlastnosti. Uvidφme, jestli nßm tato novinka takΘ pom∙₧e s CSS layoutem strßnek, kter² se dnes °eÜφ p°edevÜφm pomocφ pozicovßnφ.
Podpora strßnkov²ch mΘdiφ
Nejnov∞jÜφm p°φr∙stkem do rodiny specifikacφ CSS3 modul∙ je dalÜφ pracovnφ verze modulu Paged media, zab²vajφcφho se podporou pro strßnkovß mΘdia, tedy p°edevÜφm pro tisk. Oproti CSS2 majφ webdesigne°i mnohem vφce mo₧nostφ, jak ovlivnit v²slednou prezentaci dokumentu. Nov∞ p∙jde definovat nap°φklad zßhlavφ a zßpatφ, Φφslovßnφ strßnek nebo odkazovßnφ na danou strßnku pomocφ jejφho Φφsla.
DalÜφ novinky
Novinek je pochopiteln∞ mnohem vφce, obvykle jde o vylepÜenφ nebo up°esn∞nφ ji₧ stßvajφcφch vlastnostφ. N∞kolika zajφmav²ch zm∞n se doΦkßme t°eba v modulu Borders, kter² se cel² toΦφ okolo okraj∙ element∙. Nov∞ budeme moci nastavit stφn pod okrajem nebo zakulatit rohy.
V∞tÜφ podpory se doΦkajφ i dv∞ znßmΘ XML aplikace, MathML a hlavn∞ SVG. Mimo ji₧ existujφcφch vlastnostφ se objevφ i n∞kterΘ novΘ urΦenΘ p°φmo pro prßci s t∞mito jazyky.
AΦkoliv se p°edpoklßdalo, ₧e v CSS3 budou poprvΘ standardizovßny filtry (statickΘ grafickΘ efekty, vφce se o nich m∙₧ete doΦφst t°eba ve Φlßnku StatickΘ filtry v CSS), zdß se, ₧e tomu tak nakonec nebude. Ani₧ bych zde cht∞l polemizovat nad jejich u₧iteΦnostφ, domnφvßm se, ₧e rozhodn∞ nejde o zßsadnφ ztrßtu.
Podobn∞ jako na XHTML 2.0 si jeÜt∞ n∞jakou dobu poΦkßme i na CSS3. JednotlivΘ moduly jsou v r∙zn²ch stßdiφch rozpracovanosti, od prvnφch nßvrh∙ a₧ po finßlnφch doporuΦenφ.
XML
Specifikace XML 1.0 se ukßzala b²t skuteΦn∞ odoln²m dokumentem. Od svΘho vydßnφ v roce 1998 se doΦkala pouze up°es≥ujφcφ druhΘ edice (XML 1.0 Second Edition), publikovanΘ v roce 2000. Ve stavu kandidßta na doporuΦenφ (Candidate Recommendation) se nachßzφ revize XML s po°adov²m Φφslem 1.1. A op∞t se ukazuje, nakolik trvanliv²m a kvalitn∞ p°ipraven²m dokumentem p∙vodnφ XML bylo. Zm∞n je opravdu minimum a t²kajφ se p°edevÜφm podpory Unicode 3.
Zatφmco se samotn²m XML se toho p°φliÜ ned∞je, situace je mnohem zajφmav∞jÜφ u doporuΦenφ, kterΘ rozÜi°ujφ samotnΘ XML nebo definujφ jazyky pro prßci s nφm.
Transformace
Rodina jazyk∙ XSL (XSLT, XPath a XSL-FO) slou₧φ k definovßnφ transformace jednoho XML dokumentu do libovolnΘho jinΘho a Φasto se pou₧φvajφ pro p°evßd∞nφ XML do XHTML. Jazyk XPath se pou₧φvß k identifikaci jednotliv²ch Φßstφ XML dokument∙, kterΘ se oznaΦujφ pojmem uzly. Mimo transformacφ jej pou₧φvß takΘ nap°φklad jazyk XPointer. Hlavnφm transformaΦnφm jazykem je XSLT. Je to aplikace XML, definujφcφ Üablony, popisujφcφ samotnou transformaci XML dokument∙. Ob∞ dv∞ specifikace se nynφ nachßzejφ ve verzi 1.0, ale p°ipravujφ se jejich dvojkovΘ verze. Oba jazyky by m∞ly vyjφt souΦasn∞ tak, aby se mohly co nejlΘpe dopl≥ovat.
XQuery
Zajφmavou technologiφ jsou tzv. nativnφ XML databßze. Jde ve zkratce o ·lo₧iÜt∞ XML dokument∙. OvÜem databßze nikdy nebude ·plnß bez svΘho dotazovacφho jazyka. Zatφmco ve sv∞t∞ klasick²ch relaΦnφch databßzφ vlßdne jazyk SQL, XML zatφm nic podobnΘho nemß. Zatφm se dotazovacφ jazyk nad XML realizoval pomocφ XSL transformacφ (tedy transformacφ vstupnφho XML dokumentu do v²stupnφho dokumentu obsahujφcφho podmno₧inu informacφ ze vstupu), W3C ale vytvß°φ vlastnφ dotazovacφ jazyk XQuery. Momentßln∞ je ve stßdiu pracovnφho nßvrhu.
Jazyky pro odkazy
Jazyk XLink p°edklßdß obecnou syntaxi zalo₧enou na XML pro vytvß°enφ odkaz∙ mezi dokumenty, tedy zobecn∞nφ atributu href jazyka XHTML. Zatφmco v XHTML m∙₧eme takto definovat pouze jednosm∞rn² odkaz, XLink nßm nabφzφ mnohem vφce mo₧nostφ a p°edevÜφm je pou₧iteln² v libovolnΘm XML dokumentu. Verze XLink 1.0 je ve stßdiu finßlnφho doporuΦenφ a dalÜφ se nep°ipravuje. S podporou prohlφ₧eΦ∙ to ale nenφ zrovna nejlepÜφ, pouze Mozilla dokß₧e zpracovat alespo≥ zßkladnφ typy XLink odkaz∙.
XPointer je samostatn²m rozÜφ°enφm XML. P°edstavuje syntaxi urΦenou pro odkazovßnφ na urΦitß mφsta v XML dokumentu v rßmci URL adresy. V XHTML jsme zvyklφ na odkazy URL konΦφcφ znakem # a °et∞zcem, kterΘ odkazujφ na element s id='°et∞zec'. XPointer toho op∞t nabφzφ daleko vφce, nap°φklad odkazovßnφ na urΦitΘ elementy v XML dokumentech, ke kter²m nemßme p°φstup a nem∙₧eme ovlivnit jejich ID, nebo odkazovßnφ na urΦitΘ rozsahy element∙. K lokalizaci pot°ebn²ch element∙ pou₧φvß XPointer v²razy jazyka XPath. DoporuΦenφ zatφm nenφ kompletnφ, jeho t°i Φßsti XPointer Framework, XPointer element() scheme a XPointer xmlns() scheme jsou u₧ finßlnφmi doporuΦenφmi, ale nejd∙le₧it∞jÜφ Φtvrtß Φßst XPointer xpointer() scheme pou₧φvajφcφ k lokalizaci prßv∞ jazyk XPath je stßle ve stßdiu pracovnφho nßvrhu.
DOM
DOM, neboli Document Object Model, je specifikacφ zßsadnφho v²znamu. Jde o programovacφ rozhranφ nezßvislΘ na pou₧itΘm jazyce, postavenΘ na principech objektov∞ orientovanΘho programovßnφ pro dynamick² p°φstup k element∙m XML dokumentu. SvΘ hlavnφ uplatn∞nφ zatφm naÜlo p°edevÜφm v dynamick²ch klientsk²ch skriptech pou₧φvan²ch v XHTML, kde alespo≥ trochu pomohlo proΦistit d₧ungli, kterß mß ko°eny u₧ ve vßlce prohlφ₧eΦ∙ Internet Explorer a Netscape Navigator o dominaci na webu.
Poslednφ specifikacφ je DOM 2, nynφ se ale p°ipravuje t°etφ verze sklßdajφcφ se z p∞ti dokument∙, jejich₧ stav se pohybuje od pracovnφch nßvrh∙ a₧ po kandidßtskΘ doporuΦenφ. Odkazy na jednotlivΘ dokumenty vÜech specifikacφ naleznete na strßnce Document Object Model (DOM) Technical Reports.
SVG
SVG je velmi ambici≤znφ aplikace XML urΦenß pro popis dvourozm∞rnΘ vektorovΘ grafiky. Jejφ nejnov∞jÜφ doporuΦenφ je verze SVG 1.1. P°ipravuje se dalÜφ verze normy SVG 1.2, kterß bude hlavn∞ rozÜφ°ena o v∞tÜφ podporu tekoucφho textu. Dokument je nynφ ve stßdiu t°etφho pracovnφho nßvrhu. Vφce se o SVG dozvφte nap°φklad v Φlßnku Pr∙vodce SVG a nßsledujφcφch.
Doufßm, ₧e jste se v tΘ zßplav∞ norem neztratili a Φlßnek vßm poskytl p°ehled na poli doporuΦenφ publikovan²ch konsorciem W3C.