Archivační formáty
• nejznámější archivační formáty jsou
– ARJ - program arj (hlavně MS DOS a Windows), velmi dobrý kompresní formát, rychlý, mnoho možností zadávaných z příkazové řádky
– ZIP - programy pkzip, pkunzip (MS DOS), další verze i pod MS Windows GUI (WinZip), existuje i GNU ZIP pod UNIXem, o něco méně výkonný než arj, rozšířený hlavně v MS DOSu a MS Windows
– TAR - archivní program pod UNIXem, přípona tar
– RAR - formát rozšířený hlavně pod MS Windows (WinRAR), přípona rar
– ARC - již příliš nepoužívaný formát rozšířený v MS DOSu (program i přípona arc)
– Z - UNIXovský formát, (compress uncompress), přípona Z
Další formáty
• další významné formáty
– DVI - výměnný formát nezávislý na zařízení (pro dokumenty)
– EXE, COM - spustitelné (MS DOS)
– DB - databázový (DBase)
– DLL - dynamická Windows knihovna
– PS - PostScript - vektorový
– PDF - "klikací" texty (Adobe)
– AVI - video
– MP3 - zvuk, ztrátová komprese
– WAV - zvuk, bezeztrátový
– MPG - video, ztrátové (viz JPEG)
Největší databáze studentských prací pro střední a vysoké školy - maturitní otázky...
Hledejte v chronologicky řazené databázi studijních materiálů (starší / novější příspěvky).
Formát TIFF, PCX
Formát TIFF, PCX
• formát TIFF je dostupný na téměř všech operačních systémech (jde asi o nejrozšířenější formát), velmi univerzální
• je rastrový a velmi složitý
• podporuje řadu kompresí - RLE, LZW, JPEG, Huffmanovo...
• obvyklé přípony jsou tif, tiff
• velmi široce rozšířený formát je také PCX, zejména v MS DOSu a Windows
• je také rastrový snadno komprimovatelný (RLE), ale obrázky v něm jsou rozsáhlé
Formát GIF
• formát rozšířený hlavně díky Internetu, kódující ovšem pouze v 8b je GIF
• jde o velmi rychle dekomprimovatelný rastrový formát s dobrou kompresní metodou (LZW) produkující rychle přenositelné a zobrazitelné obrázky, podporovaný většinou operačních systémů
• díky metodě LZW již obrázky v tomto formátu nelze dále komprimovat pomocí archivních programů jako ARJ, ZIP, ...
Formát JPG
• rastrový formát nabízející vynikající kompresní poměr a rozšířený také zejména díky Internetu je JPG
• používaný typ komprese je JPEG, což je ztrátová komprese - tedy z obrázku ve formátu JPG nelze obnovit původní obrázek (lze nastavit stupeň ztrátovosti tak, aby výsledek byl co nejvěrnější)
• používané přípony jsou jpg, jpeg, fif, ffi
• je rozšířen na většině platforem
• komprese je pomalá, dekomprese rychlá
• formát TIFF je dostupný na téměř všech operačních systémech (jde asi o nejrozšířenější formát), velmi univerzální
• je rastrový a velmi složitý
• podporuje řadu kompresí - RLE, LZW, JPEG, Huffmanovo...
• obvyklé přípony jsou tif, tiff
• velmi široce rozšířený formát je také PCX, zejména v MS DOSu a Windows
• je také rastrový snadno komprimovatelný (RLE), ale obrázky v něm jsou rozsáhlé
Formát GIF
• formát rozšířený hlavně díky Internetu, kódující ovšem pouze v 8b je GIF
• jde o velmi rychle dekomprimovatelný rastrový formát s dobrou kompresní metodou (LZW) produkující rychle přenositelné a zobrazitelné obrázky, podporovaný většinou operačních systémů
• díky metodě LZW již obrázky v tomto formátu nelze dále komprimovat pomocí archivních programů jako ARJ, ZIP, ...
Formát JPG
• rastrový formát nabízející vynikající kompresní poměr a rozšířený také zejména díky Internetu je JPG
• používaný typ komprese je JPEG, což je ztrátová komprese - tedy z obrázku ve formátu JPG nelze obnovit původní obrázek (lze nastavit stupeň ztrátovosti tak, aby výsledek byl co nejvěrnější)
• používané přípony jsou jpg, jpeg, fif, ffi
• je rozšířen na většině platforem
• komprese je pomalá, dekomprese rychlá
Vektorové formáty
Vektorové formáty
• soubory ve vektorovém formátu obsahují matematické popisy prvků obrázku (typ, střed, poloměr, barvu, směr, délku,
výplň, ...)
• jejich výhodou je nezávislost na zařízení
• struktura vektorového obrázku
– hlavička (obecné informace)
– barevná paleta
– popis objektů
• podle použití se v jednotlivých formátech liší používané typy a specifikace objektů
• protože je obrázek uložen jako série objektů, je snadné jej zvětšovat, otáčet, transformovat, ...
• některé vektorové obrázky lze snadno editovat i v textovém režimu
• převod z vektorového formátu na rastrový je snadný (naopak ne)
• nehodí se na ukládání složitých předloh (fotografie), kde jsou barvy bodů primární, vykreslování může trvat dlouho
• nejznámější CDR, CGM, DXF (AutoCAD)
Typy komprese
• u grafických formátů se používají
– RLE - redukuje opakované výskyty znaků -místo AAAAA napíše 5A (lze kódovat ve směru X, Y, ZIGZAG, ...), vhodné pro obrázky s jednobarevnými plochami
– LZW - všeobecně použitelné kódování (nejen na obrázky), používají je například i ZIP, ARJ, ... - buduje znakový slovník dat, které se ve vstupu objevují (pokud se pak řetězec ve slovníku vyskytne, je zakódován podle slovníku (kratším kódem než je řetězec), pokud ne, opíše se (spolu s nějakým příznakem nezakódování))
– Huffmanovo kódování (CCITT) - předloha se skládá z 1 a 0, sledujeme délky proudů 1 a nul a ty zapisujeme pomocí jejich délky, na dalších řádcích se sledují shody a odlišnosti od předchozího řádku (někdy se jako první řádek berou samé 1) a kódují pomocí délek shod a odlišností
– JPEG (DCT transformace) - ztrátová komprese, ztrácí části téměř neviditelné lidským okem (malé změny barev), lze určit výslednou kvalitu (ztrátovost), vhodná zejména pro fotografie (ne pro jednobarevné plochy), jde ale o poměrně složitou metodu
• soubory ve vektorovém formátu obsahují matematické popisy prvků obrázku (typ, střed, poloměr, barvu, směr, délku,
výplň, ...)
• jejich výhodou je nezávislost na zařízení
• struktura vektorového obrázku
– hlavička (obecné informace)
– barevná paleta
– popis objektů
• podle použití se v jednotlivých formátech liší používané typy a specifikace objektů
• protože je obrázek uložen jako série objektů, je snadné jej zvětšovat, otáčet, transformovat, ...
• některé vektorové obrázky lze snadno editovat i v textovém režimu
• převod z vektorového formátu na rastrový je snadný (naopak ne)
• nehodí se na ukládání složitých předloh (fotografie), kde jsou barvy bodů primární, vykreslování může trvat dlouho
• nejznámější CDR, CGM, DXF (AutoCAD)
Typy komprese
• u grafických formátů se používají
– RLE - redukuje opakované výskyty znaků -místo AAAAA napíše 5A (lze kódovat ve směru X, Y, ZIGZAG, ...), vhodné pro obrázky s jednobarevnými plochami
– LZW - všeobecně použitelné kódování (nejen na obrázky), používají je například i ZIP, ARJ, ... - buduje znakový slovník dat, které se ve vstupu objevují (pokud se pak řetězec ve slovníku vyskytne, je zakódován podle slovníku (kratším kódem než je řetězec), pokud ne, opíše se (spolu s nějakým příznakem nezakódování))
– Huffmanovo kódování (CCITT) - předloha se skládá z 1 a 0, sledujeme délky proudů 1 a nul a ty zapisujeme pomocí jejich délky, na dalších řádcích se sledují shody a odlišnosti od předchozího řádku (někdy se jako první řádek berou samé 1) a kódují pomocí délek shod a odlišností
– JPEG (DCT transformace) - ztrátová komprese, ztrácí části téměř neviditelné lidským okem (malé změny barev), lze určit výslednou kvalitu (ztrátovost), vhodná zejména pro fotografie (ne pro jednobarevné plochy), jde ale o poměrně složitou metodu
Textové formáty
Textové formáty
• formát RTF je univezální formát pro nejrůznější textové dokumenty obsahující formátovací vlastnosti, strukturu dokumentu, vlastnosti dokumentu a používající tisknutelné ASCII znaky
• klíčová slova jsou ve formátu
\lettersequence
• a určují způsob formátování bloku textu, který je uzavřen ve {}
• jde o formát používaný firmou Microsoft
Formát WordPerfect
• velmi rozšířený formát je WordPerfect, odpovídající danému textovému procesoru, přípona zeména wp, má řadu modifikací podle typu procesoru
• obdobné chrakteristiky platí pro formát MS Word, přípona doc
• v českých zemích je hojně rozšířen i formát T602 (přípona txt)
• obecný textový formát pro daný typ dokumentu asi neexistuje, je potřeba volit podle dostupnosti SW u uživatele
• formát RTF je univezální formát pro nejrůznější textové dokumenty obsahující formátovací vlastnosti, strukturu dokumentu, vlastnosti dokumentu a používající tisknutelné ASCII znaky
• klíčová slova jsou ve formátu
\lettersequence
• a určují způsob formátování bloku textu, který je uzavřen ve {}
• jde o formát používaný firmou Microsoft
Formát WordPerfect
• velmi rozšířený formát je WordPerfect, odpovídající danému textovému procesoru, přípona zeména wp, má řadu modifikací podle typu procesoru
• obdobné chrakteristiky platí pro formát MS Word, přípona doc
• v českých zemích je hojně rozšířen i formát T602 (přípona txt)
• obecný textový formát pro daný typ dokumentu asi neexistuje, je potřeba volit podle dostupnosti SW u uživatele
Tvůrci standardů
Tvůrci standardů
• tvůrci standardů
– výrobci a vlivní producenti, většinou se rozšíří díky kvalitě či inovativnosti (Adobe), nebo díky síle výrobce a rozšířenosti jeho produktu (Microsoft)
– organizace
• standardizační (W3C)
• profesní (IEEE)
– státní nebo nadstátní úřady a organizace (ANSI, ISO, ...)
– uživatelé (zásady chování)
• některé standardy se mohou přesouvat např. od výrobce k organizaci, ...
Důležité oblasti
• Nejdůležitější formáty souborů
– grafické formáty
• vektorové
• rastrové
• animace
– textové formáty
– komprimační a archivní formáty
– multimediální formáty
• zvuk
• video
– další formáty
• databázové
• spustitelných souborů
• tvůrci standardů
– výrobci a vlivní producenti, většinou se rozšíří díky kvalitě či inovativnosti (Adobe), nebo díky síle výrobce a rozšířenosti jeho produktu (Microsoft)
– organizace
• standardizační (W3C)
• profesní (IEEE)
– státní nebo nadstátní úřady a organizace (ANSI, ISO, ...)
– uživatelé (zásady chování)
• některé standardy se mohou přesouvat např. od výrobce k organizaci, ...
Důležité oblasti
• Nejdůležitější formáty souborů
– grafické formáty
• vektorové
• rastrové
• animace
– textové formáty
– komprimační a archivní formáty
– multimediální formáty
• zvuk
• video
– další formáty
• databázové
• spustitelných souborů
Formáty souborů
Formáty souborů
• formáty souborů se často odlišují příponou ve jménu souboru
• rozeznáváme
– logický formát souboru - pro uživatele
– fyzický - uložení na médiu
• rozdíly jsou třeba u databázový souborů, textových souborů, ...
• většinou jsou formáty souborů spojeny s konkrétními aplikacemi
• někdy dokonce různé verze jedné aplikace mají různé formáty (MS Word)
Grafické formáty
• formát BMP je nejčastěji používán v MS Windows, je rastrový a obsahuje
– hlavičku souboru (14 byte)
• typ
• velikost
• rozložení
– informační hlavičku (40 byte)
• dimenze
• typ komprese (žádný nebo RLE)
• barevný formát
– tabulku barev
– pole byte, definujících barvy pro jednotlivé body bitmapy
Formát BMP
• tabulka barev obsahuje specifikace barev v RGB podobě (3 byte), pro každou použitou barvu jednu specifikaci
• pokud jde o obrázek v 24b barvách, tabulka barev se nevyskytuje a místo ní je hodota každého bodu vyjádřena v RGB podobě
• formát BMP používá kompresi pouze pro 8b obrázky, jinak ne - obrázky v tomto formátu jsou tedy rozsáhlé, čtení komprimace a dekomprimace jsou rychlé
• formáty souborů se často odlišují příponou ve jménu souboru
• rozeznáváme
– logický formát souboru - pro uživatele
– fyzický - uložení na médiu
• rozdíly jsou třeba u databázový souborů, textových souborů, ...
• většinou jsou formáty souborů spojeny s konkrétními aplikacemi
• někdy dokonce různé verze jedné aplikace mají různé formáty (MS Word)
Grafické formáty
• formát BMP je nejčastěji používán v MS Windows, je rastrový a obsahuje
– hlavičku souboru (14 byte)
• typ
• velikost
• rozložení
– informační hlavičku (40 byte)
• dimenze
• typ komprese (žádný nebo RLE)
• barevný formát
– tabulku barev
– pole byte, definujících barvy pro jednotlivé body bitmapy
Formát BMP
• tabulka barev obsahuje specifikace barev v RGB podobě (3 byte), pro každou použitou barvu jednu specifikaci
• pokud jde o obrázek v 24b barvách, tabulka barev se nevyskytuje a místo ní je hodota každého bodu vyjádřena v RGB podobě
• formát BMP používá kompresi pouze pro 8b obrázky, jinak ne - obrázky v tomto formátu jsou tedy rozsáhlé, čtení komprimace a dekomprimace jsou rychlé
Objekt forms
Objekt forms
• formuláře jsou v Javascriptu reprezentovány objektem Form, jsou vždy prvky pole document.forms, jehož vlastností je pole elements, obsahující elementy formuláře - vlastnost name je jméno elementu, value hodnota
• ostatní vlastnosti formuláře - action, encoding, method, target
• elegantnější možnost přístupu k elementům je
document.jmenoformulare.jmenoelementu
CSS vs. JavaScript
• pomocí JavaScriptu můžeme také definovat styly
• používáme syntaxi
selektor.vlastnost = "hodnota"
• jako selektory máme několik nových JavaScript objektů a funkcí
– pro vlastnosti tagů tags
tags.jmeno_tagu
– pro třídy classes
classes.jmeno_tridy.all(tag)
– pro individuální vlastnosti ids
ids.jmeno_individualniho_stylu
– pro kontextové definice contextual
contextual(selektor, ...)
• pokud definujeme styly pomocí tagu STYLE, musíme tako TYPE použít "text/javascript"
• pokud definujeem styly pomocí atributu STYLE, používáme hodnoty uzavřené do apostrofů!
• kdekoliv v programech JavaScriptu můžeme použít nastavení vlastností pro libovolný objekt (u kterého ho má smysl)
• formuláře jsou v Javascriptu reprezentovány objektem Form, jsou vždy prvky pole document.forms, jehož vlastností je pole elements, obsahující elementy formuláře - vlastnost name je jméno elementu, value hodnota
• ostatní vlastnosti formuláře - action, encoding, method, target
• elegantnější možnost přístupu k elementům je
document.jmenoformulare.jmenoelementu
CSS vs. JavaScript
• pomocí JavaScriptu můžeme také definovat styly
• používáme syntaxi
selektor.vlastnost = "hodnota"
• jako selektory máme několik nových JavaScript objektů a funkcí
– pro vlastnosti tagů tags
tags.jmeno_tagu
– pro třídy classes
classes.jmeno_tridy.all(tag)
– pro individuální vlastnosti ids
ids.jmeno_individualniho_stylu
– pro kontextové definice contextual
contextual(selektor, ...)
• pokud definujeme styly pomocí tagu STYLE, musíme tako TYPE použít "text/javascript"
• pokud definujeem styly pomocí atributu STYLE, používáme hodnoty uzavřené do apostrofů!
• kdekoliv v programech JavaScriptu můžeme použít nastavení vlastností pro libovolný objekt (u kterého ho má smysl)
Standardy, formáty
Přednáška č. 19
Obsah přednášky
Téma: Standardy, formáty
- standardy a standardizace
- formáty dat
- grafické formáty
- textové formáty
- kompresní formáty
Příští téma: Zkoušení
Standardy
• standardy jsou všeobecně uznávané specifikace (v jakékoliv oblasti)
• proces tvorby standardů - standardizace
• v oblasti výpočetní techniky máme
– standardy v oblasti HW
• architektury počítačů, systémů, zařízení a sítí
• rozhraní (tedy způsob komunikace mezi zařízeními nebo s uživatelem) - slouží k tomu, aby produkty různých výrobců mohly být kombinovány dohromady (konkurenční výhoda) a aby uživatel mohl komunikovat se zařízeními navyklým způsobem
– v oblasti SW (v APV nás budou zajímat)
• formáty souborů (umožňují kombinovat práci s více programy)
• formáty rozhraní (pro komunikaci programů mezi sebou)
• poskytované služby
• standardy uživatelského rozhraní (formuláře, klávesové zkratky, ...)
– ostatní
• postupy práce
• metodiky tvorby
• zásady chování (na počítačové síti, ...)
• některé standardy mohou být později pevně definovány a povýšeny na normu
Obsah přednášky
Téma: Standardy, formáty
- standardy a standardizace
- formáty dat
- grafické formáty
- textové formáty
- kompresní formáty
Příští téma: Zkoušení
Standardy
• standardy jsou všeobecně uznávané specifikace (v jakékoliv oblasti)
• proces tvorby standardů - standardizace
• v oblasti výpočetní techniky máme
– standardy v oblasti HW
• architektury počítačů, systémů, zařízení a sítí
• rozhraní (tedy způsob komunikace mezi zařízeními nebo s uživatelem) - slouží k tomu, aby produkty různých výrobců mohly být kombinovány dohromady (konkurenční výhoda) a aby uživatel mohl komunikovat se zařízeními navyklým způsobem
– v oblasti SW (v APV nás budou zajímat)
• formáty souborů (umožňují kombinovat práci s více programy)
• formáty rozhraní (pro komunikaci programů mezi sebou)
• poskytované služby
• standardy uživatelského rozhraní (formuláře, klávesové zkratky, ...)
– ostatní
• postupy práce
• metodiky tvorby
• zásady chování (na počítačové síti, ...)
• některé standardy mohou být později pevně definovány a povýšeny na normu
DOM - objektový model dokumentu
DOM
• objektový model dokumentu (DOM) uspořádává objekty reprezentující prohlížeč a stránky, nejdůležitější jsou
• window (vl. self, window, parent, top)
– location
– history
– frames
– navigator
– document
• links
• images
• anchors
• forms
– elements
Objekt window
• jednoduché metody
document.write('text')
alert("zprava")
prompt("zadani")
open("URL", "jmeno_okna", "parametry")
close("jmeno_okna)
• kde document.write vypíše řetězec na stránku (jako HTML kód), alert zobrazí zprávu pro uživatele, prompt ho vyzve k zadání řetězce (který vrátí), open otevře nové okno a close ho zavře
• parametry open se zadávají vedle sebe a oddělují čárkou (parametr=hodnota)
• parametry
– toolbar (yes/no)
– location (yes/no)
– directories (yes/no)
– status (yes/no)
– menubar (yes/no)
– scrollbars (yes/no)
– resizable (yes/no)
– copyhistory (yes/no)
– width (šířka)
– height (výška)
– top (shora)
– left (zleva)
• objektový model dokumentu (DOM) uspořádává objekty reprezentující prohlížeč a stránky, nejdůležitější jsou
• window (vl. self, window, parent, top)
– location
– history
– frames
– navigator
– document
• links
• images
• anchors
• forms
– elements
Objekt window
• jednoduché metody
document.write('text')
alert("zprava")
prompt("zadani")
open("URL", "jmeno_okna", "parametry")
close("jmeno_okna)
• kde document.write vypíše řetězec na stránku (jako HTML kód), alert zobrazí zprávu pro uživatele, prompt ho vyzve k zadání řetězce (který vrátí), open otevře nové okno a close ho zavře
• parametry open se zadávají vedle sebe a oddělují čárkou (parametr=hodnota)
• parametry
– toolbar (yes/no)
– location (yes/no)
– directories (yes/no)
– status (yes/no)
– menubar (yes/no)
– scrollbars (yes/no)
– resizable (yes/no)
– copyhistory (yes/no)
– width (šířka)
– height (výška)
– top (shora)
– left (zleva)
Objekt navigator
Objekt navigator
• vlastnosti objektu navigator identifikují browser
– appName - jméno
– appVersion - verze
– appCodeName - kódové označení
– UserAgent - kódové označení/verze
• při určování browserů se často používá vestavěná funkce parseInt(), která vyseparuje z řetězce první celé číslo
verze = parseInt(navigator.appVersion)
• po identifikaci špatného browseru se hodí vlastnost na změnu obsahu okna
window.location = "nove_URL"
Objekt images
• pro práci s obrázky je důležitý objekt document.images, což je pole s objekty typu Image, které se automaticky vytvoří pro každý obrázek na WWW stránce
• velmi důležitá je pak vlastnost objektu Image src, která nastavuje zdroj obrázku
document.images[jmeno].src=zdroj
• objekt pro práci s datem - Date()
– obsahuje datum a čas v neupravené podobě - lépe s metodami getDay() , getDate(), getYear(), getHours(), getMonth(), getMinutes(), getSeconds()
• vlastnosti objektu navigator identifikují browser
– appName - jméno
– appVersion - verze
– appCodeName - kódové označení
– UserAgent - kódové označení/verze
• při určování browserů se často používá vestavěná funkce parseInt(), která vyseparuje z řetězce první celé číslo
verze = parseInt(navigator.appVersion)
• po identifikaci špatného browseru se hodí vlastnost na změnu obsahu okna
window.location = "nove_URL"
Objekt images
• pro práci s obrázky je důležitý objekt document.images, což je pole s objekty typu Image, které se automaticky vytvoří pro každý obrázek na WWW stránce
• velmi důležitá je pak vlastnost objektu Image src, která nastavuje zdroj obrázku
document.images[jmeno].src=zdroj
• objekt pro práci s datem - Date()
– obsahuje datum a čas v neupravené podobě - lépe s metodami getDay() , getDate(), getYear(), getHours(), getMonth(), getMinutes(), getSeconds()
Objektové metody
Objektové metody
• každý objekt má speciální 3 metody, které jsou v určitých okamžicích automaticky vyvolány (lze je přepsat)
– toString() je vyvolána při konverzi objektu na řetězec a vrací řetězec reprezentující typ či hodnotu objektu
– valueOf() je vyvolána při konverzi objektu na jiný typ než řetězec (hlavně na číslo)
– assign() je vyvolána, když se objekt objeví na levé straně operátoru přiřazení a pokusí se hodnotou z pravé strany (předanou jako argument) nastavit novou hodnotu objektu
Pole
• pole je v Javascriptu přístupné stejně jako v C, indexy začínají od 0, typy jednotlivých prvků se mohou lišit
• pole může mít jakýkoliv počet prvků, který lze kdykoliv změnit
• indexy pole nemusí jít za sebou a pro nepoužité indexy se nevyhrazuje paměť
• pole je stejné jako objekt - objekty mohou mít číselně indexované prvky a pole mohou mít vlastnosti, i pole se tvoří pomocí konstruktoru a new
• existuje předdefinovaný konstruktor Array s jedním parametrem určujícím délku pole (a hodnotu vlastnosti length)
• pokud nemá parametr, vytvoří se prázdné pole, pokud jich má více, použijí se jako inicializační hodnoty
• vlastnost len gth takto inicializovaného pole má hodnotu o 1vyšší než nejvyšší index pole
• všemi browsery nepodporované metody polí - join(), reverse(), sort()
• každý objekt má speciální 3 metody, které jsou v určitých okamžicích automaticky vyvolány (lze je přepsat)
– toString() je vyvolána při konverzi objektu na řetězec a vrací řetězec reprezentující typ či hodnotu objektu
– valueOf() je vyvolána při konverzi objektu na jiný typ než řetězec (hlavně na číslo)
– assign() je vyvolána, když se objekt objeví na levé straně operátoru přiřazení a pokusí se hodnotou z pravé strany (předanou jako argument) nastavit novou hodnotu objektu
Pole
• pole je v Javascriptu přístupné stejně jako v C, indexy začínají od 0, typy jednotlivých prvků se mohou lišit
• pole může mít jakýkoliv počet prvků, který lze kdykoliv změnit
• indexy pole nemusí jít za sebou a pro nepoužité indexy se nevyhrazuje paměť
• pole je stejné jako objekt - objekty mohou mít číselně indexované prvky a pole mohou mít vlastnosti, i pole se tvoří pomocí konstruktoru a new
• existuje předdefinovaný konstruktor Array s jedním parametrem určujícím délku pole (a hodnotu vlastnosti length)
• pokud nemá parametr, vytvoří se prázdné pole, pokud jich má více, použijí se jako inicializační hodnoty
• vlastnost len gth takto inicializovaného pole má hodnotu o 1vyšší než nejvyšší index pole
• všemi browsery nepodporované metody polí - join(), reverse(), sort()
Výrazy a operace
Výrazy a operace
• většina operátorů v JavaScriptu je stejných jako v jazyce C
• vyjímkou jsou
– typeof - vrací datový typ
– new - volá konstruktor
– void - vrací nedefinovanou hodnotu
– >>> - posun s doplněním nuly místo znaménka
• priorita
. [] ()
++ -- - (unárně) ~ ! typeof new void
* / %
+ -
<< >> >>>
< <= > >=
== !=
&
^
|
&&
||
?:
=
*= /= %= += -= <<= >>= >>>= &= ^= |=
,
Funkce
• funkce definujeme a voláme podobně jako v jazyce C, pouze neurčujeme typy a používáme klíčové slovo function
function jmeno (parametr, ...) { ... }
• pokud předáme více argumentů než je specifikováno, budou ignorovány
• pokud předáme méně argumentů, některé budou mít nedefinované hodnoty
• když funkce neobsahuje return, nevrací hodnotu a lze ji použít mimo výrazy
• v JavaScriptu jsou funkce daty
• pro datový typ funkce existuje objektový typ Function, který má tyto vlastnosti (které lze používat pro běžící funkce)
– pole arguments obsahuje sadu hodnot argumentů předaných funkci
– odkaz na funkci, která vyvolala aktuální funkci caller
– konstruktor Function(), jeho parametry tvoří parametry funkce, poslední z nich tělo
• funkce jsou objekty, tedy jim lze přiřazovat vlastnosti (a lokální proměnné a argumenty jsou také vlastnosti)
• většina operátorů v JavaScriptu je stejných jako v jazyce C
• vyjímkou jsou
– typeof - vrací datový typ
– new - volá konstruktor
– void - vrací nedefinovanou hodnotu
– >>> - posun s doplněním nuly místo znaménka
• priorita
. [] ()
++ -- - (unárně) ~ ! typeof new void
* / %
+ -
<< >> >>>
< <= > >=
== !=
&
^
|
&&
||
?:
=
*= /= %= += -= <<= >>= >>>= &= ^= |=
,
Funkce
• funkce definujeme a voláme podobně jako v jazyce C, pouze neurčujeme typy a používáme klíčové slovo function
function jmeno (parametr, ...) { ... }
• pokud předáme více argumentů než je specifikováno, budou ignorovány
• pokud předáme méně argumentů, některé budou mít nedefinované hodnoty
• když funkce neobsahuje return, nevrací hodnotu a lze ji použít mimo výrazy
• v JavaScriptu jsou funkce daty
• pro datový typ funkce existuje objektový typ Function, který má tyto vlastnosti (které lze používat pro běžící funkce)
– pole arguments obsahuje sadu hodnot argumentů předaných funkci
– odkaz na funkci, která vyvolala aktuální funkci caller
– konstruktor Function(), jeho parametry tvoří parametry funkce, poslední z nich tělo
• funkce jsou objekty, tedy jim lze přiřazovat vlastnosti (a lokální proměnné a argumenty jsou také vlastnosti)
Tok řízení
Tok řízení
• příkazy v JavaScriptu jsou
– výrazy vytvořené pomocí operátorů
– volání funkcí
– složený příkaz { }
– řídící příkazy
– var, return, deklarace funkce, prázdný
• příkazy mohou být ukončeny středníkem (a musí, je-li jich více na řádku)
• řídící příkazy
– stejné jako v jazyce C - if else, while, for, continue, break
– odlišné - for in, with
for (promenna in objekt) prikaz
• provádí příkaz prikaz pro všechny vlastnosti objektu objekt, jež postupně umísťuje do proměnné promenna
• neuvádí
– length pro uživatelsky definovaná pole
– vlastnosti funkcí, metod, konstruktorů
– konstanty objektů Math a Number
– vlastnosti nebo metody definované pomocí klíčových slov var nebo function
• chceme-li z výrazů vynechat objekt.
with (objekt) prikaz
Předávání odkazem
• v prikaz bude pak pro všechny proměnné napřed zjišťováno, zda nejde o vlastnosti objektu objekt, teprve pokud ne, jsou použity samostatně
• většina manipulací s datovými typy v JavaScriptu probíhá hodnotou
• odkazem jsou
– kopírovány objekty, pole, řetězce a funkce
– předávány hodnoty objekt, polí, řetězců a funkcí
– porovnávány objekty, pole a funkce
• příkazy v JavaScriptu jsou
– výrazy vytvořené pomocí operátorů
– volání funkcí
– složený příkaz { }
– řídící příkazy
– var, return, deklarace funkce, prázdný
• příkazy mohou být ukončeny středníkem (a musí, je-li jich více na řádku)
• řídící příkazy
– stejné jako v jazyce C - if else, while, for, continue, break
– odlišné - for in, with
for (promenna in objekt) prikaz
• provádí příkaz prikaz pro všechny vlastnosti objektu objekt, jež postupně umísťuje do proměnné promenna
• neuvádí
– length pro uživatelsky definovaná pole
– vlastnosti funkcí, metod, konstruktorů
– konstanty objektů Math a Number
– vlastnosti nebo metody definované pomocí klíčových slov var nebo function
• chceme-li z výrazů vynechat objekt.
with (objekt) prikaz
Předávání odkazem
• v prikaz bude pak pro všechny proměnné napřed zjišťováno, zda nejde o vlastnosti objektu objekt, teprve pokud ne, jsou použity samostatně
• většina manipulací s datovými typy v JavaScriptu probíhá hodnotou
• odkazem jsou
– kopírovány objekty, pole, řetězce a funkce
– předávány hodnoty objekt, polí, řetězců a funkcí
– porovnávány objekty, pole a funkce
Úvod do JavaScriptu
Přednáška č. 18
Obsah přednášky
Téma: Úvod do JavaScriptu
- charakteristiky JavaScriptu
- Typy, objekty
- Funkce, výrazy, tok řízení
- Propojení s browserem, DOM
- CSS vs. JavaScript
Příští téma: standardy, formáty
Charakteristiky
• JavaScript je sytakticky velmi podobný jazyku C
• JavaScript rozlišuje velká a malá písmena
• poznámky v Javascriptu jsou stejné jako v C++
/* poznámka */ // také poznámka
• literály jsou
– čísla (1.25, -02, +.5, -6.02e-17, +.3E+2)
– řetězce ("řetězec", 'řetězec' - lepší)
– logické hodnoty (true, false)
– null
Proměnné
• proměnné jsou v JavaScriptu netypové a není je třeba deklarovat
• deklarace je potřebná pouze uvnitř funkce, existuje-li globální proměnná stejného jména
var i = nepovinna_inicializace;
• hodnoty (proměnných i literálů) jsou vhodně konvertovány mezi sebou podle kontextu
i = "Máme" + 5 + " hodin"
/* 5 je konvertována na řetězec */
Čísla
• všechna čísla mají vnitřní reprezentaci jako čísla s plovoucí desetinnou tečkou
• existuje řada předdefinovaných funkcí pro práci s čísly, všechny jsou součástí objektu Math, tedy přistupujeme k nim
Math.funkce(argumenty)
• máme abs, sin, cos, tan, asin, acos, atan, exp, log, ceil (zaokrouhlení nahoru), floor (a dolů), min, max (ze dvou čísel), pow (základ, exponent), round, sqrt
Obsah přednášky
Téma: Úvod do JavaScriptu
- charakteristiky JavaScriptu
- Typy, objekty
- Funkce, výrazy, tok řízení
- Propojení s browserem, DOM
- CSS vs. JavaScript
Příští téma: standardy, formáty
Charakteristiky
• JavaScript je sytakticky velmi podobný jazyku C
• JavaScript rozlišuje velká a malá písmena
• poznámky v Javascriptu jsou stejné jako v C++
/* poznámka */ // také poznámka
• literály jsou
– čísla (1.25, -02, +.5, -6.02e-17, +.3E+2)
– řetězce ("řetězec", 'řetězec' - lepší)
– logické hodnoty (true, false)
– null
Proměnné
• proměnné jsou v JavaScriptu netypové a není je třeba deklarovat
• deklarace je potřebná pouze uvnitř funkce, existuje-li globální proměnná stejného jména
var i = nepovinna_inicializace;
• hodnoty (proměnných i literálů) jsou vhodně konvertovány mezi sebou podle kontextu
i = "Máme" + 5 + " hodin"
/* 5 je konvertována na řetězec */
Čísla
• všechna čísla mají vnitřní reprezentaci jako čísla s plovoucí desetinnou tečkou
• existuje řada předdefinovaných funkcí pro práci s čísly, všechny jsou součástí objektu Math, tedy přistupujeme k nim
Math.funkce(argumenty)
• máme abs, sin, cos, tan, asin, acos, atan, exp, log, ceil (zaokrouhlení nahoru), floor (a dolů), min, max (ze dvou čísel), pow (základ, exponent), round, sqrt
Řetězce
Řetězce
• řetězcové konstanty
– \b (backslash), \f (nová stránka), \n, \r (backspace), \t, \', \", \xxx (osmičkově)
• ke sloučení řetězců slouží operátor +
• délka řetězce s
s.length
• řada operací s řetězci je dostupná v třídě String, používají se jako length
• v JavaScriptu je i speciální hodnota undefined (při porovnání je stejná jako null), vracená pro neinicializ. proměnné
Objekty
• soubor pojmenovaných dat se v JavaScriptu nazývá objekt (pojmenovaná data jsou vlastnosti)
objekt.vlastnost
• vlastnosti objektů mohou být jakékoliv typy dat, pole, funkce, objekty, ...
• novou vlastnost přidáme jednoduše nastavením její hodnoty
• nové objekty se tvoří pomocí new a funkce konstruktoru
objekt = new Konstruktor()
• obecný konstruktor Object() vytvoří konstruktor bez vlastností
• lze napsat vlastní konstruktor, který nastaví hodnoty vlastností, existují i předdefinované konstruktory objektů
• při psaní konstruktoru používáme klíčové slovo this obsahující odkaz na nově vytvořený objekt, tedy definice vlastnosti v konstruktoru
this.vlasnost = hodnota
• konstruktor by neměl vracet hodnotu
• vlastnosti mohou být i funkce - máme-li objekt o, vlastnost m a funkci f, definujeme funkci jako vlastnost
o.m = f
• v těle této funkce pak lze opět použít klíčové slovo this
• pro přístup k vlastnostem lze použít i operátor [], pak je jméno vlastnosti zapsáno jako řetězec a může být zpracováno programově (výraz, ...)
objekt["vlastnost"]
• řetězcové konstanty
– \b (backslash), \f (nová stránka), \n, \r (backspace), \t, \', \", \xxx (osmičkově)
• ke sloučení řetězců slouží operátor +
• délka řetězce s
s.length
• řada operací s řetězci je dostupná v třídě String, používají se jako length
• v JavaScriptu je i speciální hodnota undefined (při porovnání je stejná jako null), vracená pro neinicializ. proměnné
Objekty
• soubor pojmenovaných dat se v JavaScriptu nazývá objekt (pojmenovaná data jsou vlastnosti)
objekt.vlastnost
• vlastnosti objektů mohou být jakékoliv typy dat, pole, funkce, objekty, ...
• novou vlastnost přidáme jednoduše nastavením její hodnoty
• nové objekty se tvoří pomocí new a funkce konstruktoru
objekt = new Konstruktor()
• obecný konstruktor Object() vytvoří konstruktor bez vlastností
• lze napsat vlastní konstruktor, který nastaví hodnoty vlastností, existují i předdefinované konstruktory objektů
• při psaní konstruktoru používáme klíčové slovo this obsahující odkaz na nově vytvořený objekt, tedy definice vlastnosti v konstruktoru
this.vlasnost = hodnota
• konstruktor by neměl vracet hodnotu
• vlastnosti mohou být i funkce - máme-li objekt o, vlastnost m a funkci f, definujeme funkci jako vlastnost
o.m = f
• v těle této funkce pak lze opět použít klíčové slovo this
• pro přístup k vlastnostem lze použít i operátor [], pak je jméno vlastnosti zapsáno jako řetězec a může být zpracováno programově (výraz, ...)
objekt["vlastnost"]
Vlastnosti barevné a pozadí
• vlastnosti barevné a pozadí
– barva color se aplikuje na všechny elementy, dědí se a může být
• barva
– obrázek na pozadí background-image se aplikuje na všechny elementy, nedědí se a může být
• URL obrázku pozadí (relativní URL je interpretována vzhledem ke zdroji stylu, ne relativně k dokumentu!)
– směry ve kterých se bude obrázek opakovat background-repeat se aplikuje na všechny elementy, nedědí se a může být
• repeat, repeat-x, repeat-y, no-repeat
– barva pozadí background-color se aplikuje na všechny elementy, nedědí se a může být
• barva
– celkové nastavení pozadí background se aplikuje na všechny elementy, nedědí se a je
background:top right bottom left;
• klasifikační vlastnosti
– určení kategorie elementu display se aplikuje na všechny elementy, nedědí se a je
• block, inline, list-item, none (nezobrazí element)
– styl odrážky seznamu list-style-type je aplikován na seznamy, dědí se a může být
• disc, circle, square, decimal, lower-roman, upper-roman, lower-alpha, upper-alpha, none
– barva color se aplikuje na všechny elementy, dědí se a může být
• barva
– obrázek na pozadí background-image se aplikuje na všechny elementy, nedědí se a může být
• URL obrázku pozadí (relativní URL je interpretována vzhledem ke zdroji stylu, ne relativně k dokumentu!)
– směry ve kterých se bude obrázek opakovat background-repeat se aplikuje na všechny elementy, nedědí se a může být
• repeat, repeat-x, repeat-y, no-repeat
– barva pozadí background-color se aplikuje na všechny elementy, nedědí se a může být
• barva
– celkové nastavení pozadí background se aplikuje na všechny elementy, nedědí se a je
background:top right bottom left;
• klasifikační vlastnosti
– určení kategorie elementu display se aplikuje na všechny elementy, nedědí se a je
• block, inline, list-item, none (nezobrazí element)
– styl odrážky seznamu list-style-type je aplikován na seznamy, dědí se a může být
• disc, circle, square, decimal, lower-roman, upper-roman, lower-alpha, upper-alpha, none
Pozicování
Pozicování
• pomocí pozicovacích vlastností můžeme přesně řídit umístění jednotlivých elementů na stránce
• toto umístění může být
– absolutní - pozice elementu se stanovuje od levého horního rohu dokumentu
– relativní - element se posune od své přirozené pozice
• typ určování pozice position se aplikuje na všechny elementy, dědí se a může být
– absolute
– relative
• umístění levého horního rohu elementu top a left se aplikuje na všechny elementy, nědědí se a je
– délka s jednotkou
– procento velikosti rodičovského elementu
• pozicované elementy se mohou i překrývat, o tom který bude viditelný rozhoduje vlastnost z-index (element s nejvyšší hodnotou bude viditelný), která je aplikována na pozicované elementy, nedědí se a je
– číslo bez jednotky
• definice obdélníkové části elementu, která bude viditelná clip je aplikována na pozicované elementy, nedědí se a je
– rect(left, top, right, bottom)
• levá a pravá hranice je specifikována v pixelech od levé hrany elementu, horní a dolní hranice jsou v pixelech dolů od horní hrany elementu (stačí i určit jen right a bottom, pak jsou left a top = 0)
• důležitá vlastnost je i viditelnost elementu visibility, její možné hodnoty se však v různých browserech liší
Specifikace CSS1
• tyto popsané vlastnosti by měly pracovat v IE 4.0, NN 4.0
• ve vyšších typech fungují i další vlastnosti (lépe je na tom IE), které lze nalézt ve specifikaci CSS1
http://www.w3.org/TR/REC-CSS1
• další specifikace CSS2 (a vývojová CSS3) nejsou plně podporovány, o browserech a jejich podpoře CSS více na http://www.w3.org
• pomocí pozicovacích vlastností můžeme přesně řídit umístění jednotlivých elementů na stránce
• toto umístění může být
– absolutní - pozice elementu se stanovuje od levého horního rohu dokumentu
– relativní - element se posune od své přirozené pozice
• typ určování pozice position se aplikuje na všechny elementy, dědí se a může být
– absolute
– relative
• umístění levého horního rohu elementu top a left se aplikuje na všechny elementy, nědědí se a je
– délka s jednotkou
– procento velikosti rodičovského elementu
• pozicované elementy se mohou i překrývat, o tom který bude viditelný rozhoduje vlastnost z-index (element s nejvyšší hodnotou bude viditelný), která je aplikována na pozicované elementy, nedědí se a je
– číslo bez jednotky
• definice obdélníkové části elementu, která bude viditelná clip je aplikována na pozicované elementy, nedědí se a je
– rect(left, top, right, bottom)
• levá a pravá hranice je specifikována v pixelech od levé hrany elementu, horní a dolní hranice jsou v pixelech dolů od horní hrany elementu (stačí i určit jen right a bottom, pak jsou left a top = 0)
• důležitá vlastnost je i viditelnost elementu visibility, její možné hodnoty se však v různých browserech liší
Specifikace CSS1
• tyto popsané vlastnosti by měly pracovat v IE 4.0, NN 4.0
• ve vyšších typech fungují i další vlastnosti (lépe je na tom IE), které lze nalézt ve specifikaci CSS1
http://www.w3.org/TR/REC-CSS1
• další specifikace CSS2 (a vývojová CSS3) nejsou plně podporovány, o browserech a jejich podpoře CSS více na http://www.w3.org
Vlastnosti textu
• vlastnosti textu
– vzdálenost dvou řádků line-height se aplikuje na blokové elementy, dědí se a může být
• číslo s jednotkou (jen kladné)
• procenta velikosti písma elementu
• číslo (pak se vynásobí velikostí písma elementu), rozdíl od procenta je v dědění (zde se zdědí násobek, normálně se dědí vypočtená hodnota)
– ozdoba textu text-decoration se aplikuje na všechny elementy, nedědí se a může být
• none
• underline (pro podtržení)
• line-through (pro přeškrtnutí)
• blink (pro blikání)
– transformace textu text-transform se aplikuje na všechny elementy, dědí se a je
• capitalize (pro kapitálky)
• uppercase (pro velká písmena)
• lowercase (pro malá písmena)
• none
• zarovnání textu text-align se aplikuje na blokové elementy, dědí se a je
• left, right, center
• justify (do bloku)
– odsazení první řádky textu text-indent se aplikuje na blokové elementy, dědí se a je
• číslo s jednotkou
• procento šířky rodičovského elementu
– vzdálenost dvou řádků line-height se aplikuje na blokové elementy, dědí se a může být
• číslo s jednotkou (jen kladné)
• procenta velikosti písma elementu
• číslo (pak se vynásobí velikostí písma elementu), rozdíl od procenta je v dědění (zde se zdědí násobek, normálně se dědí vypočtená hodnota)
– ozdoba textu text-decoration se aplikuje na všechny elementy, nedědí se a může být
• none
• underline (pro podtržení)
• line-through (pro přeškrtnutí)
• blink (pro blikání)
– transformace textu text-transform se aplikuje na všechny elementy, dědí se a je
• capitalize (pro kapitálky)
• uppercase (pro velká písmena)
• lowercase (pro malá písmena)
• none
• zarovnání textu text-align se aplikuje na blokové elementy, dědí se a je
• left, right, center
• justify (do bloku)
– odsazení první řádky textu text-indent se aplikuje na blokové elementy, dědí se a je
• číslo s jednotkou
• procento šířky rodičovského elementu
Vlastnosti blokových elementů
• vlastnosti blokových elementů
– velikost okraje margin-left, margin-right, margin-top, margin-bottom se aplikuje na všechny elementy, nedědí se a může být
– číslo s jednotkou
• procenta šířky rodičovského elementu
– celkové nastavení okraje margin
margin:top right bottom left;
– velikost vnitřního okraje padding-top, padding-right, padding-bottom, padding-left se aplikuje na všechny elementy, nedědí se, nemůže být záporná a může být
• číslo s jednotkou
• procenta šířky rodičovského elementu
– celkové nastavení vnitřního okraje padding
padding:top right bottom left;
– šířka okraje border-top-width, border-right-width, border-bottom-width, border-left-width se aplikuje na všechny elementy, nedědí se a může být
• číslo s jednotkou
– celkové nastavení šířky okraje border-width
border-width:top right bottom left;
– styl okraje border-style se aplikuje na všechny elementy a nedědí se a může být
• none, solid, double, inset, outset, groove, ridge
– barva okraje border-color se aplikuje na všechny elementy, nedědí se a může být
• barva
– obtékání elementu okolím (nastaví element jako plovoucí) float se aplikuje na všechny elementy, nedědí se a může být (pokud jej nastavujete, nepoužívejte okraje, nemusí pracovat správně - raději je nastavte v okolním DIV)
• left, right, none
– šířka elementu width se aplikuje na blokové (a nahrazované) elementy, nedědí se a je (je-li nastavena s oběma okraji, pak pokud nutí width element přesáhnout pravý okraj, je zanedbána, pokud nutí element skončit dříve, velikost pravého okraje je zanedbána)
• procenta šířky rodičovského elementu
• číslo s jednotkou
• auto (automatické nastavení podle místa)
– určení, na kterých stranách nebudou plovoucí elementy (čeká na jejich skončení na dané straně) clear se aplikuje na všechny elementy, nedědí se a může být
• left, right, both, none
– velikost okraje margin-left, margin-right, margin-top, margin-bottom se aplikuje na všechny elementy, nedědí se a může být
– číslo s jednotkou
• procenta šířky rodičovského elementu
– celkové nastavení okraje margin
margin:top right bottom left;
– velikost vnitřního okraje padding-top, padding-right, padding-bottom, padding-left se aplikuje na všechny elementy, nedědí se, nemůže být záporná a může být
• číslo s jednotkou
• procenta šířky rodičovského elementu
– celkové nastavení vnitřního okraje padding
padding:top right bottom left;
– šířka okraje border-top-width, border-right-width, border-bottom-width, border-left-width se aplikuje na všechny elementy, nedědí se a může být
• číslo s jednotkou
– celkové nastavení šířky okraje border-width
border-width:top right bottom left;
– styl okraje border-style se aplikuje na všechny elementy a nedědí se a může být
• none, solid, double, inset, outset, groove, ridge
– barva okraje border-color se aplikuje na všechny elementy, nedědí se a může být
• barva
– obtékání elementu okolím (nastaví element jako plovoucí) float se aplikuje na všechny elementy, nedědí se a může být (pokud jej nastavujete, nepoužívejte okraje, nemusí pracovat správně - raději je nastavte v okolním DIV)
• left, right, none
– šířka elementu width se aplikuje na blokové (a nahrazované) elementy, nedědí se a je (je-li nastavena s oběma okraji, pak pokud nutí width element přesáhnout pravý okraj, je zanedbána, pokud nutí element skončit dříve, velikost pravého okraje je zanedbána)
• procenta šířky rodičovského elementu
• číslo s jednotkou
• auto (automatické nastavení podle místa)
– určení, na kterých stranách nebudou plovoucí elementy (čeká na jejich skončení na dané straně) clear se aplikuje na všechny elementy, nedědí se a může být
• left, right, both, none
Individuální styly
Individuální styly
• můžeme vytvářet i styly pojmenované individuálně, většinou pro upřesnění stylistických vyjádření v rámci třídy
• HTML element může obsahovat jak specifikaci třídy, tak individuálního stylu
• při definování individuálního stylu používáme jako selektor jeho jméno začínající #, aplikujeme jej specifikací jména jako hodnoty ID atributu tagu
#jmenostylu {vlastnost:hodnota; ...}
Kontextové selektory
• u jmen i. stylů záleží na velikosti písmen
• můžeme také definovat styl, který je definován na element v závislosti na kontextu - specifikujeme kritéria tak, že vyhovují pouze pro selektor, který je použit uvnitř jiného selektoru, ...
selektor1 selektor2 {...}
• tedy pouze pro elementy selektor2 uvnitř elementů selektor1
• v kontextových selektorech můžeme použít tagy, třídy, individuální jména, ...
• tedy například pokud chceme ve vnořených nečíslovaných seznamech zobrazovat položky modrou barvou (položky druhé úrovně), použijeme
UL UL LI {color:blue;}
• v definici stylů můžeme také používat komentáře (ve stylu jazyka C)
/* komentář */
• většina styly nadefinovaných vlastností se u HTML elementů dědí z nadřazených elementů (lze je samozřejmě předefinovat)
• můžeme vytvářet i styly pojmenované individuálně, většinou pro upřesnění stylistických vyjádření v rámci třídy
• HTML element může obsahovat jak specifikaci třídy, tak individuálního stylu
• při definování individuálního stylu používáme jako selektor jeho jméno začínající #, aplikujeme jej specifikací jména jako hodnoty ID atributu tagu
#jmenostylu {vlastnost:hodnota; ...}
Kontextové selektory
• u jmen i. stylů záleží na velikosti písmen
• můžeme také definovat styl, který je definován na element v závislosti na kontextu - specifikujeme kritéria tak, že vyhovují pouze pro selektor, který je použit uvnitř jiného selektoru, ...
selektor1 selektor2 {...}
• tedy pouze pro elementy selektor2 uvnitř elementů selektor1
• v kontextových selektorech můžeme použít tagy, třídy, individuální jména, ...
• tedy například pokud chceme ve vnořených nečíslovaných seznamech zobrazovat položky modrou barvou (položky druhé úrovně), použijeme
UL UL LI {color:blue;}
• v definici stylů můžeme také používat komentáře (ve stylu jazyka C)
/* komentář */
• většina styly nadefinovaných vlastností se u HTML elementů dědí z nadřazených elementů (lze je samozřejmě předefinovat)
Skládání stylů
Skládání stylů
• pokud je na jeden element použito více stylů, jsou aplikovány podlě těchto pravidel a v tomto pořadí
– lokálně definované styly
– styly definované pomocí STYLE
– externě definované styly (a z nich ten naposledy definovaný)
• lokální styly přepisují hodnoty zděděné od rodičů, specifičtější styl přepisuje obecnější (ID přepíše CLASS)
• univerzální atributy HTML tagů - STYLE, CLASS, ID, NAME
Jednotky
• u vlastností používáme následující jednotky
– délkové - se skládají ze znaménka (nepovinně + nebo -), čísla a jednotky
• relativní jednotky - em (výška písma elementu - většinou výška nebo šířka M), ex (polovina výšky elementu), px (pixel - závisí na zobraz. jednotce)
• absolutní jednotky - pt (bod), pc (pica), in (palec), mm (milimetr), cm (centimetr)
– barvy -
• jméno (16 jmen z HTML)
• RGB specifikace #rrggbb (r,g,b jsou 0-F)
• RGB specifikace rgb(r, g, b), kde r,g,b jsou 0-255, nebo 0%-100%
• pokud je na jeden element použito více stylů, jsou aplikovány podlě těchto pravidel a v tomto pořadí
– lokálně definované styly
– styly definované pomocí STYLE
– externě definované styly (a z nich ten naposledy definovaný)
• lokální styly přepisují hodnoty zděděné od rodičů, specifičtější styl přepisuje obecnější (ID přepíše CLASS)
• univerzální atributy HTML tagů - STYLE, CLASS, ID, NAME
Jednotky
• u vlastností používáme následující jednotky
– délkové - se skládají ze znaménka (nepovinně + nebo -), čísla a jednotky
• relativní jednotky - em (výška písma elementu - většinou výška nebo šířka M), ex (polovina výšky elementu), px (pixel - závisí na zobraz. jednotce)
• absolutní jednotky - pt (bod), pc (pica), in (palec), mm (milimetr), cm (centimetr)
– barvy -
• jméno (16 jmen z HTML)
• RGB specifikace #rrggbb (r,g,b jsou 0-F)
• RGB specifikace rgb(r, g, b), kde r,g,b jsou 0-255, nebo 0%-100%
Vlastnosti
Vlastnosti
• vlastnosti písem
– velikost písma font-size se aplikuje na všechny elementy, dědí se a může být
• absolutní hodnota (xx-small, x-small, small, medium, large, x-large, xx-large)
• relativní hodnota (larger, smaller)
• délka následovaná jednotkou
• procento velikosti písma rodičovského elementu
– rodina písma font-family se aplikuje na všechny elementy, dědí se a může být
• seznam jmen rodiny písma (Helvetica, Arial, ...) a obecného jména rodiny (serif, sans-serif, cursive, monospace, fantasy) - pokud první písmo není dostupné, bere se další, ...
– síla písma font-weight se aplikuje na všechny elementy, dědí se a může být
• relativní (normal, bold, bolder, lighter)
• absolutní (100 - 900), 900 je nejsilnější
– styl písma font-style se aplikuje na všechny elementy, dědí se a může být
• normal
• italic (pro italiku)
– celkové nastavení písma font se aplikuje na všechny elementy, dědí se a může být
font:font-weight font-style font-size/font-height font-family;
• vlastnosti písem
– velikost písma font-size se aplikuje na všechny elementy, dědí se a může být
• absolutní hodnota (xx-small, x-small, small, medium, large, x-large, xx-large)
• relativní hodnota (larger, smaller)
• délka následovaná jednotkou
• procento velikosti písma rodičovského elementu
– rodina písma font-family se aplikuje na všechny elementy, dědí se a může být
• seznam jmen rodiny písma (Helvetica, Arial, ...) a obecného jména rodiny (serif, sans-serif, cursive, monospace, fantasy) - pokud první písmo není dostupné, bere se další, ...
– síla písma font-weight se aplikuje na všechny elementy, dědí se a může být
• relativní (normal, bold, bolder, lighter)
• absolutní (100 - 900), 900 je nejsilnější
– styl písma font-style se aplikuje na všechny elementy, dědí se a může být
• normal
• italic (pro italiku)
– celkové nastavení písma font se aplikuje na všechny elementy, dědí se a může být
font:font-weight font-style font-size/font-height font-family;
Definování CSS
Definování CSS
• CSS můžeme definovat několika různými způsoby
• pomocí tagu STYLE v hlavičkové části dokumentu (pro lepší kompatibilitu s prohlížeči nepodporujícími styly se obsah uzavírá do komentáře - je ignorován)
• v externím dokumentu - v něm definujeme všechna pravidla, celý soubor připojíme k dokumentu pomocí LINK
< LINK REL=STYLESHEET TYPE="text/css" HREF="URL souboru se styly">
• definice pomocí atributu STYLE mírně odporuje filozofii stylů - míchá obsah a grafickou podobu (měl by se používat zejména s tagem SPAN)
• pokud chceme ušetřit místo a používáme pro několik selektorů stejná pravidla - lze napsat definice pro více selektorů oddělěných čárkou
P, .red1 {color:red}
Definování tříd
• pokud jako selektor použijeme jméno tagu, pak se změny projeví u všech výskytů tohoto tagu v dokumentu
• pokud bychom chtěli změny promítnout jen u některých výskytů, použijeme jako selektor třídu (název selektoru začíná .) a u tagu, u kterého chceme styl použít použijeme atribut CLASS s hodnotou této třídy
.jmenotridy {vlastnost:hodnota; ...}
• pokud před jméno třídy doplníme i jméno tagu, omezíme použití třídy pouze na tento tag
P.red1 {color:red;}
• pro použití tříd (a i individuálních stylů) máme v HTML definovány tagy DIV (styly pro odstavce) a SPAN (na řádku)
• HTML tag může používat pouze jednu třídu stylů, pokud jich specifikujeme více, je použita pouze ta první
• u jmen tříd záleží na velikosti písmen
• CSS můžeme definovat několika různými způsoby
• pomocí tagu STYLE v hlavičkové části dokumentu (pro lepší kompatibilitu s prohlížeči nepodporujícími styly se obsah uzavírá do komentáře - je ignorován)
• v externím dokumentu - v něm definujeme všechna pravidla, celý soubor připojíme k dokumentu pomocí LINK
< LINK REL=STYLESHEET TYPE="text/css" HREF="URL souboru se styly">
• definice pomocí atributu STYLE mírně odporuje filozofii stylů - míchá obsah a grafickou podobu (měl by se používat zejména s tagem SPAN)
• pokud chceme ušetřit místo a používáme pro několik selektorů stejná pravidla - lze napsat definice pro více selektorů oddělěných čárkou
P, .red1 {color:red}
Definování tříd
• pokud jako selektor použijeme jméno tagu, pak se změny projeví u všech výskytů tohoto tagu v dokumentu
• pokud bychom chtěli změny promítnout jen u některých výskytů, použijeme jako selektor třídu (název selektoru začíná .) a u tagu, u kterého chceme styl použít použijeme atribut CLASS s hodnotou této třídy
.jmenotridy {vlastnost:hodnota; ...}
• pokud před jméno třídy doplníme i jméno tagu, omezíme použití třídy pouze na tento tag
P.red1 {color:red;}
• pro použití tříd (a i individuálních stylů) máme v HTML definovány tagy DIV (styly pro odstavce) a SPAN (na řádku)
• HTML tag může používat pouze jednu třídu stylů, pokud jich specifikujeme více, je použita pouze ta první
• u jmen tříd záleží na velikosti písmen
Kaskádové styly CSS
Přednáška č. 17
Obsah přednášky
Téma: Kaskádové styly CSS
- Základ práce s CSS, Připojení CSS k HTML dokumentu, Vlastnosti, Pozicování pomocí CSS
- Příští téma: JavaScript
Základ práce s CSS
• pomocí parametrů jednotlivých tagů a tagů jako FONT lze nastavit řadu grafických charakteristik dokumentu
– musíme tak činit pro každý element samostatně (pracné a neflexibilní)
– místo struktury dokumentu se v HTML začáná hledět na grafický vzhled
• lepší možnost dává použití kaskádových stylů (CSS) - lze definovat vzhled jednotně v celém dokumentu (a v samostatném dokumentu se můžeme zaměřit na logickou strukturu informace)
• styly se skládají z pravidel
selektor {vlastnost:hodnota; ...}
• selektorem je nejčastěji jméno tagu (jinak class, id nebo kontextový)
• pro každý tag jsou platné pouze některé vlastnosti
H1 {color:black; font-family:sans-serif;}
• jeden dokument může obsahovat několik doplňujících se stylů a jeden styl lze použít ve více dokumentech
Obsah přednášky
Téma: Kaskádové styly CSS
- Základ práce s CSS, Připojení CSS k HTML dokumentu, Vlastnosti, Pozicování pomocí CSS
- Příští téma: JavaScript
Základ práce s CSS
• pomocí parametrů jednotlivých tagů a tagů jako FONT lze nastavit řadu grafických charakteristik dokumentu
– musíme tak činit pro každý element samostatně (pracné a neflexibilní)
– místo struktury dokumentu se v HTML začáná hledět na grafický vzhled
• lepší možnost dává použití kaskádových stylů (CSS) - lze definovat vzhled jednotně v celém dokumentu (a v samostatném dokumentu se můžeme zaměřit na logickou strukturu informace)
• styly se skládají z pravidel
selektor {vlastnost:hodnota; ...}
• selektorem je nejčastěji jméno tagu (jinak class, id nebo kontextový)
• pro každý tag jsou platné pouze některé vlastnosti
H1 {color:black; font-family:sans-serif;}
• jeden dokument může obsahovat několik doplňujících se stylů a jeden styl lze použít ve více dokumentech
Čeština na MZLU
Čeština na MZLU
• nejlepší možností je převod rutiny na převod kódu na WWW server
• na dahlii je modul na automatické překódování, který převádí z CP 1250 do ostatních kódů
• pokud nemáme text psán v CP 1250, musíme do každého adresáře uložit soubor .htaccess obsahující řádek
SourceCzechCodePageLocal kódování
• můžeme do HTML souboru vložit i možnost změny kódování uživatelem
• vložíme kód podobný tomuto
ASCII |
CP 1250 (Windows)|
ISO 8859-2 (Unix) |Macintosh
• stačí soubor index.html, server provede převod podle kódování v příponě
• možnosti pro kódování jsou tyto
CP1250-pro kódování MS Windows (default)-CISO8859-1-pro kódování ISO Latin-1
CISO8859-2-pro kódování ISO Latin-2 (UNIX)-CKOI8CS-pro kódování KOI8
CKAM-pro kódování dle bratří Kamenických-CP852-pro kódování PC Latin-2
CASCII-pro kódování ASCII - bez češtiny--
• nejlepší možností je převod rutiny na převod kódu na WWW server
• na dahlii je modul na automatické překódování, který převádí z CP 1250 do ostatních kódů
• pokud nemáme text psán v CP 1250, musíme do každého adresáře uložit soubor .htaccess obsahující řádek
SourceCzechCodePageLocal kódování
• můžeme do HTML souboru vložit i možnost změny kódování uživatelem
• vložíme kód podobný tomuto
ASCII |
CP 1250 (Windows)|
ISO 8859-2 (Unix) |Macintosh
• stačí soubor index.html, server provede převod podle kódování v příponě
• možnosti pro kódování jsou tyto
CP1250-pro kódování MS Windows (default)-CISO8859-1-pro kódování ISO Latin-1
CISO8859-2-pro kódování ISO Latin-2 (UNIX)-CKOI8CS-pro kódování KOI8
CKAM-pro kódování dle bratří Kamenických-CP852-pro kódování PC Latin-2
CASCII-pro kódování ASCII - bez češtiny--
Design WWW stránek
Design WWW stránek
• rámce jsou většinou zbytečné, starší browsery je navíc neumí používat
• obsah umožňující vstup dále patří na levou část stránky, měl by být ve stejné podobě na všech stranách a má členění
– specifické části
– alternativní pohledy
– další odkazy
• odkazy na cizí WWW patří na pravou část stránky, neměly by být na titulní straně a mělo by být zřejmé opuštění vaší WWW
Titulní strana
• na úvodní straně by měla být možnost volby kódování češtiny, nejraději v ASCII (pokud nemáme automatickou změnu)
• na titulní stránce by neměly být neHTML prvky (skripty, applety, ActiveX, ...) - musí být zobrazitelná všude
• jasná identifikace vlastníka WWW by měla být také na titulní straně a měla by být textová (pro všechny uživatele)
• musíme mít možnost návratu na hlavní stranu odkudkoliv a ve stejné podobě
Rozložení stránky
• stránky by měly být tvořeny pro rozlišení 640*480 (šířka raději 620)
• hlavní stránka by měla být viditelná bez rolování
• doporučení velikosti sloupců
– 120 + 500 (2)
– 80 + 400 + 40 (3)
– 80 + 300 + 100 + 40 (4)
• pro formování stránek používejte tabulky, rozložení musí být na všech stranách stejné, nebojte se prázdného prostoru
• rámce jsou většinou zbytečné, starší browsery je navíc neumí používat
• obsah umožňující vstup dále patří na levou část stránky, měl by být ve stejné podobě na všech stranách a má členění
– specifické části
– alternativní pohledy
– další odkazy
• odkazy na cizí WWW patří na pravou část stránky, neměly by být na titulní straně a mělo by být zřejmé opuštění vaší WWW
Titulní strana
• na úvodní straně by měla být možnost volby kódování češtiny, nejraději v ASCII (pokud nemáme automatickou změnu)
• na titulní stránce by neměly být neHTML prvky (skripty, applety, ActiveX, ...) - musí být zobrazitelná všude
• jasná identifikace vlastníka WWW by měla být také na titulní straně a měla by být textová (pro všechny uživatele)
• musíme mít možnost návratu na hlavní stranu odkudkoliv a ve stejné podobě
Rozložení stránky
• stránky by měly být tvořeny pro rozlišení 640*480 (šířka raději 620)
• hlavní stránka by měla být viditelná bez rolování
• doporučení velikosti sloupců
– 120 + 500 (2)
– 80 + 400 + 40 (3)
– 80 + 300 + 100 + 40 (4)
• pro formování stránek používejte tabulky, rozložení musí být na všech stranách stejné, nebojte se prázdného prostoru
Grafika
Grafika
• grafické prvky slouží k upoutání pozornosti - nemají být primární
• obrázky mají vždy určenou velikost (=skutečné) a obsahují alternativní text
• loga ostatních subjektů používejte vyjímečně (nebezpečí záměny)
• grafická paleta je stejná pro všechny GIF
• místo velkých obrázků použijte náhled s odkazem na celou verzi obrázku
• grafika neslouží k předávání informací
• animace je pouze na získání pozornosti
Písmo a barvy
• typ písma měňte jen je-li to nutné
• velikost písma neurčujte v bodech
• nepoužívejte malou velikost písma
• velikost udržujte stabilní na celém WWW
• barva pozadí a textu by měla být vždy určena, barvy textu a pozadí by měly být komplementární (bílá-černá, ...)
• ověřte si všechny tři barvy odkazů
• barva a styl odkazů musí být v celém WWW stejné (i včetně podtržení, ...)
Design stránky
• navigační prvky patří vždy na stejné místo stránky a na všechny stránky
• velikost stránky by neměla překročit 100 KB (bez obrázků 50 KB)
• u downloadu by měla být určena velikost
• u článků a důležitých informací uvádějte datum aktualizace
• testujte alespoň v IE, NN pro Windows, NN pro UNIX (více verzí i typů je samozřejmě lepší)
• pravidla lze upravit podle typu uživatelů
• grafické prvky slouží k upoutání pozornosti - nemají být primární
• obrázky mají vždy určenou velikost (=skutečné) a obsahují alternativní text
• loga ostatních subjektů používejte vyjímečně (nebezpečí záměny)
• grafická paleta je stejná pro všechny GIF
• místo velkých obrázků použijte náhled s odkazem na celou verzi obrázku
• grafika neslouží k předávání informací
• animace je pouze na získání pozornosti
Písmo a barvy
• typ písma měňte jen je-li to nutné
• velikost písma neurčujte v bodech
• nepoužívejte malou velikost písma
• velikost udržujte stabilní na celém WWW
• barva pozadí a textu by měla být vždy určena, barvy textu a pozadí by měly být komplementární (bílá-černá, ...)
• ověřte si všechny tři barvy odkazů
• barva a styl odkazů musí být v celém WWW stejné (i včetně podtržení, ...)
Design stránky
• navigační prvky patří vždy na stejné místo stránky a na všechny stránky
• velikost stránky by neměla překročit 100 KB (bez obrázků 50 KB)
• u downloadu by měla být určena velikost
• u článků a důležitých informací uvádějte datum aktualizace
• testujte alespoň v IE, NN pro Windows, NN pro UNIX (více verzí i typů je samozřejmě lepší)
• pravidla lze upravit podle typu uživatelů
Čeština a WWW
Čeština a WWW
• HTML obsahuje standardně kódování ISO Latin 1 (ISO 8859-1) - to se v první polovině shoduje s ASCII, v druhé jsou speciální znaky pro západní Evropu (ale ne například ř, š) - umožní napsat některé české znaky, jiné ne
• další možností je psát text v ASCII, tedy bez diakritiky
• tato řešení jso technicky jednoduchá, lepší jsou ale řešení umožňující používat plnou českou diakritiku
• je mnoho kódování, obsahujících všechny české znaky
– CP 1250 - ve Windows
– ISO 8859-2 - hlavně v UNIXech (IE a NN pro Windows je také zvládají)
– PC Latin 2 - Microsoftí kódování v DOSu (stránka 852), také pro OS/2
– Kameničtí - původní český kód používaný zejména v DOSu (označení keybcs2)
– MAC CE - kódování pro češtinu na Apple Macintosh
• tedy pro každý OS máme jiné kódování - měli bychom ale podporovat uživatele na všech systémech - tedy uživatel by měl mít možnost zvolit kódování (nebo ASCII)
• řešením je tvorba samostatné verze dokumentu pro každé kódování - problémem jsou mnohem vyšší nároky na diskovou kapacitu a také náročnost při zapisování odkazů a náročnost při aktualizaci dokumentu (ve všech verzích)
• lepším řešením je dynamická změna kódu - CGI skript, který provede požadovaný převod - nevýhodou je zatížení serveru - pro každou stránku je spouštěn skript zajišťující převod, nevýhodou je také to, že dynamicky generované dokumenty se neuchovávají ve vyrovnávací paměti nebo skutečnost, že všichni uživatelé nemusí vědět co to kódování je
• existuje řada balíků na převod kódu
http://www.kin.vslib.cz/cgi-bin/whichcode/~satrapa/
sw/saczech/saczech.html
• HTML obsahuje standardně kódování ISO Latin 1 (ISO 8859-1) - to se v první polovině shoduje s ASCII, v druhé jsou speciální znaky pro západní Evropu (ale ne například ř, š) - umožní napsat některé české znaky, jiné ne
• další možností je psát text v ASCII, tedy bez diakritiky
• tato řešení jso technicky jednoduchá, lepší jsou ale řešení umožňující používat plnou českou diakritiku
• je mnoho kódování, obsahujících všechny české znaky
– CP 1250 - ve Windows
– ISO 8859-2 - hlavně v UNIXech (IE a NN pro Windows je také zvládají)
– PC Latin 2 - Microsoftí kódování v DOSu (stránka 852), také pro OS/2
– Kameničtí - původní český kód používaný zejména v DOSu (označení keybcs2)
– MAC CE - kódování pro češtinu na Apple Macintosh
• tedy pro každý OS máme jiné kódování - měli bychom ale podporovat uživatele na všech systémech - tedy uživatel by měl mít možnost zvolit kódování (nebo ASCII)
• řešením je tvorba samostatné verze dokumentu pro každé kódování - problémem jsou mnohem vyšší nároky na diskovou kapacitu a také náročnost při zapisování odkazů a náročnost při aktualizaci dokumentu (ve všech verzích)
• lepším řešením je dynamická změna kódu - CGI skript, který provede požadovaný převod - nevýhodou je zatížení serveru - pro každou stránku je spouštěn skript zajišťující převod, nevýhodou je také to, že dynamicky generované dokumenty se neuchovávají ve vyrovnávací paměti nebo skutečnost, že všichni uživatelé nemusí vědět co to kódování je
• existuje řada balíků na převod kódu
http://www.kin.vslib.cz/cgi-bin/whichcode/~satrapa/
sw/saczech/saczech.html
EMBED
EMBED
TYPE="MIME typ dat - určuje plug-in"
PLUGINSPAGE="URL pro instalaci plug-in"
ALIGN="LEFT"|"RIGHT"|"TOP"|"BOTTOM"
BORDER="velikost okolí plug-in"
HEIGHT="výška oblasti pro plug-in"
WIDTH="šířka oblasti pro plug-in"
HIDDEN="TRUE"|"FALSE"
HSPACE="horizintální okolí plug-in"
VSPACE="vertikální okolí plug-in"
NAME="jméno plug-in"
PALETTE="BACKGROUND"|"FOREGROUND"> data pro plug-in
• kromě těchto atributů mají některé plug-in také volitelné parametry, které browsery v HTML ignorují (jen je předávají plug-in)
parametry EMBED
• pokud není specifikován SRC, musí být specifikovát MIME pomocí TYPE
• pro viditelné plug-in musíme specifikovat WIDTH a HEIGHT
• pouze pro WINDOWS slouží parametr PALETTE, určující barevnou paletu
• alternativní text pro browsery nepodporující plug-in určuje NOEMBED
• měl by být uvnitř tagu EMBED
alternativní text
TYPE="MIME typ dat - určuje plug-in"
PLUGINSPAGE="URL pro instalaci plug-in"
ALIGN="LEFT"|"RIGHT"|"TOP"|"BOTTOM"
BORDER="velikost okolí plug-in"
HEIGHT="výška oblasti pro plug-in"
WIDTH="šířka oblasti pro plug-in"
HIDDEN="TRUE"|"FALSE"
HSPACE="horizintální okolí plug-in"
VSPACE="vertikální okolí plug-in"
NAME="jméno plug-in"
PALETTE="BACKGROUND"|"FOREGROUND"> data pro plug-in
• kromě těchto atributů mají některé plug-in také volitelné parametry, které browsery v HTML ignorují (jen je předávají plug-in)
parametry EMBED
• pokud není specifikován SRC, musí být specifikovát MIME pomocí TYPE
• pro viditelné plug-in musíme specifikovat WIDTH a HEIGHT
• pouze pro WINDOWS slouží parametr PALETTE, určující barevnou paletu
• alternativní text pro browsery nepodporující plug-in určuje NOEMBED
• měl by být uvnitř tagu EMBED
OBJECT
OBJECT
• řadu objektů můžme do HTML stránky přidat i pomocí tagu OBJECT
• tag OBJECT může obsahovat i jiné HTML tagy, včetně dalších OBJECT
• pokud browser podporuje OBJECT, pak všechny vnořené tagy kromě PARAMS ignoruje (a opačně)
• stejně jako u EMBED můžeme přes další atributy předávat objektu parametry
• pro parametry můžeme použít i PARAMS
parametry OBJECT
< OBJECT CLASSID="URL implementace objektu"
DATA="URL pro objektová data"
CODEBASE="adresář obsahující zdroje potřebné pro objekt"
TYPE="MIME typ objektu"
ALIGN="LEFT"|"RIGHT"|"TOP"|"BOTTOM"
BORDER="velikost okolí plug-in"
HEIGHT="výška oblasti pro plug-in"
WIDTH="šířka oblasti pro plug-in"
ID="jméno objektu"
...< /OBJECT>
• URL určené CLASSID je použito Java Archive Instalation Managerem (JIM) pro instalaci potřebného plug-in
Skripty
• skript na straně klienta můžeme vložit pomocí tagu SCRIPT
SRC="URL skriptu, pokud jej nahráváme z externího souboru"
>
• jazykem je nejčastěji JavaScript
• alternativu pro browsery nepodporující (nebo s vypnutým) daný skriptovací jazyk poskytuje tag NOSCRIPT
• řadu objektů můžme do HTML stránky přidat i pomocí tagu OBJECT
• tag OBJECT může obsahovat i jiné HTML tagy, včetně dalších OBJECT
• pokud browser podporuje OBJECT, pak všechny vnořené tagy kromě PARAMS ignoruje (a opačně)
• stejně jako u EMBED můžeme přes další atributy předávat objektu parametry
• pro parametry můžeme použít i PARAMS
parametry OBJECT
< OBJECT CLASSID="URL implementace objektu"
DATA="URL pro objektová data"
CODEBASE="adresář obsahující zdroje potřebné pro objekt"
TYPE="MIME typ objektu"
ALIGN="LEFT"|"RIGHT"|"TOP"|"BOTTOM"
BORDER="velikost okolí plug-in"
HEIGHT="výška oblasti pro plug-in"
WIDTH="šířka oblasti pro plug-in"
ID="jméno objektu"
• URL určené CLASSID je použito Java Archive Instalation Managerem (JIM) pro instalaci potřebného plug-in
Skripty
• skript na straně klienta můžeme vložit pomocí tagu SCRIPT
SRC="URL skriptu, pokud jej nahráváme z externího souboru"
>
• jazykem je nejčastěji JavaScript
• alternativu pro browsery nepodporující (nebo s vypnutým) daný skriptovací jazyk poskytuje tag NOSCRIPT
Applety
Applety
• Java-applet je program v jazyce Java, který je součástí stránky
• má příponu .java, na stránkách je používán ve zkompilované podobě s příponou .class
• překompilovaný kód není spouštěn OS, ale speciálním interpretem (virtuálním strojem) - proto je použití Java-appletů platformově nezávislé
• ne všechny browsery umožňují spouštějí appletů (navíc je lze i vypnout)
• úvod do psaní appletů je například na
http://java.sun.com/docs/book/tutorial/
• na vkládání appletů do stránky slouží tag APPLET
CODEBASE="adresář obsahující applety a další potřebné zdroje"
ALT="alternativní text"
ALIGN="TOP"|"LEFT"|"RIGHT"|"BOTTOM"|"MIDDLE"
HEIGHT="výška appletu" WIDTH="šířka appletu"
HSPACE="horizontální vzdálenost od okolí"
VSPACE="vertikální vzdálenost od okolí "
NAME ="jméno appletu">
...
• výška a šířka appletu může být specifikována v pixelech nebo procentech výšky a šířky okna
• velikost appletu je na tyto poviněn zadané hodnoty upravena
• informace od parametrech pro applet specifikujeme tagem PARAM
VALUE="hodnota parametru"
>
• jméno parametru je dáno appletem
• Java-applet je program v jazyce Java, který je součástí stránky
• má příponu .java, na stránkách je používán ve zkompilované podobě s příponou .class
• překompilovaný kód není spouštěn OS, ale speciálním interpretem (virtuálním strojem) - proto je použití Java-appletů platformově nezávislé
• ne všechny browsery umožňují spouštějí appletů (navíc je lze i vypnout)
• úvod do psaní appletů je například na
http://java.sun.com/docs/book/tutorial/
• na vkládání appletů do stránky slouží tag APPLET
CODEBASE="adresář obsahující applety a další potřebné zdroje"
ALT="alternativní text"
ALIGN="TOP"|"LEFT"|"RIGHT"|"BOTTOM"|"MIDDLE"
HEIGHT="výška appletu" WIDTH="šířka appletu"
HSPACE="horizontální vzdálenost od okolí"
VSPACE="vertikální vzdálenost od okolí "
NAME ="jméno appletu">
• výška a šířka appletu může být specifikována v pixelech nebo procentech výšky a šířky okna
• velikost appletu je na tyto poviněn zadané hodnoty upravena
• informace od parametrech pro applet specifikujeme tagem PARAM
VALUE="hodnota parametru"
>
• jméno parametru je dáno appletem
Příklad appletu
Příklad appletu
• následující příklad spouští applet jumping.class, který má dva parametry - zprávu a rychlost - ovlivňující běh appletu
• applet zobrazí zprávu a nechá ji pohybovat udanou rychlostí
ALT="běžící text" ALIGN="MIDDLE"
HEIGHT="400" WIDTH="240"
HSPACE="10" VSPACE="20"
NAME ="jumper">
Vkládání plug-in
• v některých browserech můžeme také zobrazit výstup ze souboru, který je spuštěn pomocí tzv. plug-in
• plug-in je aplikace připojená k browseru (tedy působí jako jeho rozšíření), výstup může být "živý" (hudba, video) nebo interaktivní (reagovat na myš, ...)
• výstup je v dokumentu zobrazen v pravoúhlé oblasti
• uživatel musí mít daný plug-in instalován (pak je spuštěn automaticky), pokud nemá, browser se ptá, zda jej instalovat
• následující příklad spouští applet jumping.class, který má dva parametry - zprávu a rychlost - ovlivňující běh appletu
• applet zobrazí zprávu a nechá ji pohybovat udanou rychlostí
ALT="běžící text" ALIGN="MIDDLE"
HEIGHT="400" WIDTH="240"
HSPACE="10" VSPACE="20"
NAME ="jumper">
Vkládání plug-in
• v některých browserech můžeme také zobrazit výstup ze souboru, který je spuštěn pomocí tzv. plug-in
• plug-in je aplikace připojená k browseru (tedy působí jako jeho rozšíření), výstup může být "živý" (hudba, video) nebo interaktivní (reagovat na myš, ...)
• výstup je v dokumentu zobrazen v pravoúhlé oblasti
• uživatel musí mít daný plug-in instalován (pak je spuštěn automaticky), pokud nemá, browser se ptá, zda jej instalovat
Dokončení HTML
Přednáška č. 16
Obsah přednášky – Dokončení HTML
• Dynamicky generované stránky
• Skripty, applety, ...
• Čeština a WWW
• Obecná pravidla tvorby WWW stránek
Příští téma: Kaskádové styly (CSS)
Dynamické dokumenty
• můžeme vytvářet i stránky nebo jejich části, jejichž obsah se v čase může měnit - počítadla přístupů, seznam přihlášených uživatelů, obsah databáze, aktuální čas, ...
• tyto stránky se většinou generují jako reakce na požadavek klienta a to
– na serveru
• serverem vkládané vsuvky
• CGI-skripty
– u klienta
Vsuvky
• doplňují HTML dokumenty speciálními příkazy, které WWW-server nahrazuje částí HTML kódu
• server tedy musí v dokumentu vyhledat příkazy, provést je a jejich výsledek vložit do dokumentu, který je odeslán klientovi
– server side includes (SSI) - rozšířená a standardizovaná metoda (většina serverů)
– personal home page (PHP) - velmi výkonný a používaný (většina serverů)
– active server pages (ASP) - u Microsoftích serverů
– server side Java script (SSJS) - u Netscape serverů
• na straně klienta jde o
– scriptovací jazyky (JavaScript (NN), JScript (rozšíření JavaScriptu IE), VBScript (IE))
– Java (programy spouštěné na stránce)
• jejich výhodou je vyšší rychlost než u vsuvek nebo CGI skriptů (odpadá přenos požadavku na server), nevýhodou je závislost na prohlížeči
Obsah přednášky – Dokončení HTML
• Dynamicky generované stránky
• Skripty, applety, ...
• Čeština a WWW
• Obecná pravidla tvorby WWW stránek
Příští téma: Kaskádové styly (CSS)
Dynamické dokumenty
• můžeme vytvářet i stránky nebo jejich části, jejichž obsah se v čase může měnit - počítadla přístupů, seznam přihlášených uživatelů, obsah databáze, aktuální čas, ...
• tyto stránky se většinou generují jako reakce na požadavek klienta a to
– na serveru
• serverem vkládané vsuvky
• CGI-skripty
– u klienta
Vsuvky
• doplňují HTML dokumenty speciálními příkazy, které WWW-server nahrazuje částí HTML kódu
• server tedy musí v dokumentu vyhledat příkazy, provést je a jejich výsledek vložit do dokumentu, který je odeslán klientovi
– server side includes (SSI) - rozšířená a standardizovaná metoda (většina serverů)
– personal home page (PHP) - velmi výkonný a používaný (většina serverů)
– active server pages (ASP) - u Microsoftích serverů
– server side Java script (SSJS) - u Netscape serverů
• na straně klienta jde o
– scriptovací jazyky (JavaScript (NN), JScript (rozšíření JavaScriptu IE), VBScript (IE))
– Java (programy spouštěné na stránce)
• jejich výhodou je vyšší rychlost než u vsuvek nebo CGI skriptů (odpadá přenos požadavku na server), nevýhodou je závislost na prohlížeči
Proměnné prostředí
Proměnné prostředí
• Kromě dat předaných CGI skriptu má server k dispozici i další údaje uložené v proměnných prostředí
• jde o
– GATEWAY_INTERFACE - verze CGI
– SERVER_NAME - IP adresa (jméno serveru)
– SERVER_SOFTWARE - jméno a verze serveru
– SERVER_PROTOCOL - jméno a verze protokolu
– SERVER_PORT - číslo portu hostitele
– REQUEST_METHOD - metoda GET nebo POP
– PATH_INFO - informace o cestě
– PATH_TRANSLATED - převedená cesta
– HTTP_REFERER - URL dokumentu
– SCRIPT_NAME - virtuální cesta ke skriptu
– DOCUMENT_ROOT - adresář pro obsluhu webových dokumentů
– QUERY_STRING - předaný dotaz
– REMOTE_HOST - jméno hostitele
– REMOTE_ADDR - IP adresa uživatele
– AUTH_TYPE - autentifikační metoda
– REMOTE_USER - autentifikované jméno
– REMOTE_IDENT - uživatel vysílající požadavek
– CONTENT_TYPE - typ dotazovaných dat
– CONTENT_LENGTH - délka dat (u POST)
– HTTP_FROM - poštovní adresa uživatele
– HTTP_ACCEPT - seznam akceptovaných typů
– HTTP_USER_AGENT - prohlížeč
• Kromě dat předaných CGI skriptu má server k dispozici i další údaje uložené v proměnných prostředí
• jde o
– GATEWAY_INTERFACE - verze CGI
– SERVER_NAME - IP adresa (jméno serveru)
– SERVER_SOFTWARE - jméno a verze serveru
– SERVER_PROTOCOL - jméno a verze protokolu
– SERVER_PORT - číslo portu hostitele
– REQUEST_METHOD - metoda GET nebo POP
– PATH_INFO - informace o cestě
– PATH_TRANSLATED - převedená cesta
– HTTP_REFERER - URL dokumentu
– SCRIPT_NAME - virtuální cesta ke skriptu
– DOCUMENT_ROOT - adresář pro obsluhu webových dokumentů
– QUERY_STRING - předaný dotaz
– REMOTE_HOST - jméno hostitele
– REMOTE_ADDR - IP adresa uživatele
– AUTH_TYPE - autentifikační metoda
– REMOTE_USER - autentifikované jméno
– REMOTE_IDENT - uživatel vysílající požadavek
– CONTENT_TYPE - typ dotazovaných dat
– CONTENT_LENGTH - délka dat (u POST)
– HTTP_FROM - poštovní adresa uživatele
– HTTP_ACCEPT - seznam akceptovaných typů
– HTTP_USER_AGENT - prohlížeč
Podle proměnné REQUEST_METHOD zjistíme...
• podle proměnné REQUEST_METHOD tedy zjistíme, jak načteme parametry a zbytek už je na programátorovi
#/bin/sh
echo 'Content-type:text/html'
echo
echo '< HTML>'
echo '< HEAD>
echo '< TITLE> Prihlaseni < /TITLE>'
echo '< /HEAD>
echo '< BODY>'
echo '< PRE>'
who
echo '< /PRE>'
echo '< /BODY>
echo '< /HTML>
• Shishir Gundavaram: CGI programování
#/bin/sh
echo 'Content-type:text/html'
echo
echo '< HTML>'
echo '< HEAD>
echo '< TITLE> Prihlaseni < /TITLE>'
echo '< /HEAD>
echo '< BODY>'
echo '< PRE>'
who
echo '< /PRE>'
echo '< /BODY>
echo '< /HTML>
• Shishir Gundavaram: CGI programování
Seznamy
Seznamy
• součástí formuláře mohou být i seznamy, ty používáme v případě, že chceme uživateli umožnit výběr z několika položek
• položky seznamu jsou uváděny uvnitř párového tagu SELECT, konkrétní položka je specifikována tagem OPTION
SIZE = "počet současně viditelných položek"
ONBLUR = "kód JavaScriptu"
ONFOCUS = "kód JavaScriptu"
ONCLICK = "kód JavaScriptu"
ONCHANGE = "kód JavaScriptu">
SELECTED
>
• při specifikaci parametru SELECTED je hodnota vybrána už na začátku
• součástí formuláře mohou být i seznamy, ty používáme v případě, že chceme uživateli umožnit výběr z několika položek
• položky seznamu jsou uváděny uvnitř párového tagu SELECT, konkrétní položka je specifikována tagem OPTION
SIZE = "počet současně viditelných položek"
ONBLUR = "kód JavaScriptu"
ONFOCUS = "kód JavaScriptu"
ONCLICK = "kód JavaScriptu"
ONCHANGE = "kód JavaScriptu">
SELECTED
>
• při specifikaci parametru SELECTED je hodnota vybrána už na začátku
CGI programy
CGI programy
• CGI program je program, který běží na serveru a zpracovává data z formulářů
• musí
– umět přebírat parametry předané podle definice CGI (Common Gateway Interface)
– výstupem je souboru ve formátu HTTP (HTML + hlavička)
• výstup CGI programu je vracen browseru k zobrazení
• data ve formuláři jsou CGI programu předána jako série dvojic jméno/hodnota (name/value)
• pro psaní CGI programů se nejčastěji používají různé příkazové interprety UNIXU (shelly), skriptovací jazyky (Perl, Tcl, ...), nebo C/C++(ale lze použít dokonce i Visual Basic)
• psaní CGI skriptů musí být na serveru povoleno správcem, ten nám sdělí jak je vytvářet, kam je ukládat a jaká bude jejich adresa
• první řádka skriptu by měla říkat, jakým způsobem bude skript interpretován
• tedy například
#/bin/sh
• pro shell sh
• dále by CGI skript měl generovat HTML stránku, před kterou uloží hlavičku, nejčastěji stačí
Content-type=text/html
• kterou říkáme, že bude následovat HTML dokument
• mezi hlavičkami a HTML stránkou musí být na výstupu prázdný řádek
• CGI program je program, který běží na serveru a zpracovává data z formulářů
• musí
– umět přebírat parametry předané podle definice CGI (Common Gateway Interface)
– výstupem je souboru ve formátu HTTP (HTML + hlavička)
• výstup CGI programu je vracen browseru k zobrazení
• data ve formuláři jsou CGI programu předána jako série dvojic jméno/hodnota (name/value)
• pro psaní CGI programů se nejčastěji používají různé příkazové interprety UNIXU (shelly), skriptovací jazyky (Perl, Tcl, ...), nebo C/C++(ale lze použít dokonce i Visual Basic)
• psaní CGI skriptů musí být na serveru povoleno správcem, ten nám sdělí jak je vytvářet, kam je ukládat a jaká bude jejich adresa
• první řádka skriptu by měla říkat, jakým způsobem bude skript interpretován
• tedy například
#/bin/sh
• pro shell sh
• dále by CGI skript měl generovat HTML stránku, před kterou uloží hlavičku, nejčastěji stačí
Content-type=text/html
• kterou říkáme, že bude následovat HTML dokument
• mezi hlavičkami a HTML stránkou musí být na výstupu prázdný řádek
Odeslání formuláře
Odeslání formuláře
• informace zadané ve formuláři odešle uživatel tlačítkem SUBMIT
NAME = "jméno elementu"
VALUE = "popis tlačítka"
>
• zadání textu provedeme pomocí elementu TEXT (pokud u tagu INPUT neuvedeme parametr TYPE, předpokládá se TEXT)
MAXLENGTH = "maximální počet zadávaných znaků"
NAME = "jméno elementu"
VALUE = "vstupní hodnota zadávaného textu"
SIZE = "velikost elementu ve znacích"
ONBLUR = kód Javascriptu"
ONFOCUS = kód Javascriptu"
ONSELECT = kód Javascriptu"
ONCHANGE = kód Javascriptu"
>
Zadání textu
• pokud textový element ztratí FOCUS a jeho hodnota je změněna, spustí se kód specifikovaný ONCHANGE
• pokud uživatel vybere nejaký text v tomto elementu, spustí se kód specifikovaný pomocí ONSELECT
• informace zadané ve formuláři odešle uživatel tlačítkem SUBMIT
NAME = "jméno elementu"
VALUE = "popis tlačítka"
>
• zadání textu provedeme pomocí elementu TEXT (pokud u tagu INPUT neuvedeme parametr TYPE, předpokládá se TEXT)
MAXLENGTH = "maximální počet zadávaných znaků"
NAME = "jméno elementu"
VALUE = "vstupní hodnota zadávaného textu"
SIZE = "velikost elementu ve znacích"
ONBLUR = kód Javascriptu"
ONFOCUS = kód Javascriptu"
ONSELECT = kód Javascriptu"
ONCHANGE = kód Javascriptu"
>
Zadání textu
• pokud textový element ztratí FOCUS a jeho hodnota je změněna, spustí se kód specifikovaný ONCHANGE
• pokud uživatel vybere nejaký text v tomto elementu, spustí se kód specifikovaný pomocí ONSELECT
Víceřádkový text
Víceřádkový text
• k zadávání delších (víceřádkových) textů slouží tag TEXTAREA
NAME = "jméno elementu"
ROWS = "počet zobrazovaných řádků"
WRAP = "HARD"|"OFF"|"SOFT"|
ONBLUR = "kód JavaScriptu"
ONCHANGE = "kód JavaScriptu"
ONSELECT = "kód JavaScriptu"
ONFOCUS = "kód JavaScriptu"
>text k zobrazení
• pro zobrazení nového řádku ve vstupním textu použijte nový odstavec
Víceřádkový text
• pokud délka textu na řádku, nebo počet řádku přesáhnou nadefinovanou velikost, zobrazí se posuvníky
• parametr WRAP specifikuje způsob zalamování
– OFF zabraňuje automatickému zalamování
– HARD umožňuje zalamování (ne horizontální posuvníky), zalomení jsou navíc přenesena při odeslání formuláře
– SOFT také umožňuje zalamování, ta se však s ostatními znaky nepřenášejí
• k zadávání delších (víceřádkových) textů slouží tag TEXTAREA
NAME = "jméno elementu"
ROWS = "počet zobrazovaných řádků"
WRAP = "HARD"|"OFF"|"SOFT"|
ONBLUR = "kód JavaScriptu"
ONCHANGE = "kód JavaScriptu"
ONSELECT = "kód JavaScriptu"
ONFOCUS = "kód JavaScriptu"
>text k zobrazení
• pro zobrazení nového řádku ve vstupním textu použijte nový odstavec
Víceřádkový text
• pokud délka textu na řádku, nebo počet řádku přesáhnou nadefinovanou velikost, zobrazí se posuvníky
• parametr WRAP specifikuje způsob zalamování
– OFF zabraňuje automatickému zalamování
– HARD umožňuje zalamování (ne horizontální posuvníky), zalomení jsou navíc přenesena při odeslání formuláře
– SOFT také umožňuje zalamování, ta se však s ostatními znaky nepřenášejí
Zadávání hesla
Zadávání hesla
MAXLENGTH = "maximální počet zadávaných znaků"
NAME = "jméno elementu"
SIZE = "velikost elementu ve znacích"
VALUE = "inicializační hodnota hesla"
ONSELECT = "kód JavaScriptu"
>
• pokud uživatel zadá nějaký text, spustí se kód specifikovaný v ONSELECT
• pokud má uživatel vybrat právě jednu z několika variant, používáme přepínací tlačítko (RADIO)
• v tom případě pro každou variantu specifikujeme jedno přepínací tlačítko
Přepínací tlačítko
• u všech takto specifikovaných tlačítek musí být nastavena hodnota atributu NAME stejně, vracená hodnota je určena hodnotou VALUE vybraného tlačítka
• zároveň musí být u jednoho tlačítka nastaven parametr CHECKED
• pokud uživatel vybere jedno tlačítko, ostatní jsou automaticky deselektovány
CHECKED
NAME = "jméno elementu"
VALUE = "hodnota spojená s tímto tlačítkem"
ONCLICK = "kód JavaScriptu"
>
• samozřejmě že lze v jednom formuláři použít více takovýchto skupin přepínacích tlačítek, odlišených jménem
Pepík
Honza
Otík
• vynulování hodnot formuláře může uživatel provést stiskem tlačítka RESET
NAME = "jméno elementu"
VALUE = "popis tlačítka"
ONCLICK = "kód JavaScriptu"
>
MAXLENGTH = "maximální počet zadávaných znaků"
NAME = "jméno elementu"
SIZE = "velikost elementu ve znacích"
VALUE = "inicializační hodnota hesla"
ONSELECT = "kód JavaScriptu"
>
• pokud uživatel zadá nějaký text, spustí se kód specifikovaný v ONSELECT
• pokud má uživatel vybrat právě jednu z několika variant, používáme přepínací tlačítko (RADIO)
• v tom případě pro každou variantu specifikujeme jedno přepínací tlačítko
Přepínací tlačítko
• u všech takto specifikovaných tlačítek musí být nastavena hodnota atributu NAME stejně, vracená hodnota je určena hodnotou VALUE vybraného tlačítka
• zároveň musí být u jednoho tlačítka nastaven parametr CHECKED
• pokud uživatel vybere jedno tlačítko, ostatní jsou automaticky deselektovány
CHECKED
NAME = "jméno elementu"
VALUE = "hodnota spojená s tímto tlačítkem"
ONCLICK = "kód JavaScriptu"
>
• samozřejmě že lze v jednom formuláři použít více takovýchto skupin přepínacích tlačítek, odlišených jménem
Pepík
Honza
Otík
• vynulování hodnot formuláře může uživatel provést stiskem tlačítka RESET
NAME = "jméno elementu"
VALUE = "popis tlačítka"
ONCLICK = "kód JavaScriptu"
>
Zaškrtávací pole
Zaškrtávací pole
• slouží pro vstup logických hodnot
CHECKED
NAME = "jméno elementu"
VALUE = "hodnota vracená serveru, pokud je pole zaškrtnuto (default ON)"
ONCLICK = "kód JavaScriptu"
>
• atribut CHECKED používáme, pokud chceme, aby políčko bylo zaškrtnuté hned po zobrazení stránky
• pokud chceme uživateli umožnit odeslání souboru, použijeme hodnotu FILE, zároveň musíme předefinovat ENTYPE
Soubor
NAME = "jméno elementu"
VALUE = "vstupní jméno dialogu souboru"
>
• po spuštění se zobrazí textové pole (vstupní hodnota je zadána jako VALUE) s tlačítkem sloužícím pro procházení souborového systému
• po odeslání formuláře je uživateli odeslán obsah souboru
• slouží pro vstup logických hodnot
CHECKED
NAME = "jméno elementu"
VALUE = "hodnota vracená serveru, pokud je pole zaškrtnuto (default ON)"
ONCLICK = "kód JavaScriptu"
>
• atribut CHECKED používáme, pokud chceme, aby políčko bylo zaškrtnuté hned po zobrazení stránky
• pokud chceme uživateli umožnit odeslání souboru, použijeme hodnotu FILE, zároveň musíme předefinovat ENTYPE
Soubor
NAME = "jméno elementu"
VALUE = "vstupní jméno dialogu souboru"
>
• po spuštění se zobrazí textové pole (vstupní hodnota je zadána jako VALUE) s tlačítkem sloužícím pro procházení souborového systému
• po odeslání formuláře je uživateli odeslán obsah souboru
Skryté políčko
Skryté políčko
• pro uchovávání stavové informace, která je odeslána zpět serveru spolu s vyplněným formulářem slouží element HIDDEN, který se ve formuláři neobjeví
NAME = "jméno elementu"
VALUE = "hodnota odesílaná serveru"
>
• pokud potřebujeme do formuláře umístit obrázek ve formě tlačítka, uděláme to pomocí elementu IMAGE
• pokud uživatel klikne na obrázek, formulář je odeslán na server
Obrázek
ALIGN = "LEFT"|"RIGHT"|"TOP"|"MIDDLE"|"BOTTOM"
NAME = "jméno elementu"
SRC = "URL obrázku"
>
• zarovnání obrázku vzhledem k okolnímu textu určuje atribut ALIGN (default je BOTTOM)
• na server je také odesláno místo kliknutí na formuláři ve formě jméno.x=x&jméno.y=y
• pokud potřebujeme zadat text, místo kterého se vypisují * nebo černé tečky, použijeme element PASSWORD
• pro uchovávání stavové informace, která je odeslána zpět serveru spolu s vyplněným formulářem slouží element HIDDEN, který se ve formuláři neobjeví
NAME = "jméno elementu"
VALUE = "hodnota odesílaná serveru"
>
• pokud potřebujeme do formuláře umístit obrázek ve formě tlačítka, uděláme to pomocí elementu IMAGE
• pokud uživatel klikne na obrázek, formulář je odeslán na server
Obrázek
ALIGN = "LEFT"|"RIGHT"|"TOP"|"MIDDLE"|"BOTTOM"
NAME = "jméno elementu"
SRC = "URL obrázku"
>
• zarovnání obrázku vzhledem k okolnímu textu určuje atribut ALIGN (default je BOTTOM)
• na server je také odesláno místo kliknutí na formuláři ve formě jméno.x=x&jméno.y=y
• pokud potřebujeme zadat text, místo kterého se vypisují * nebo černé tečky, použijeme element PASSWORD
Parametry FORM
parametry FORM
• pokud chceme vyvolat po stisku tlačítka SUBMIT nějakou akci, je atribut ACTION povinný
• atribut ACTION obsahuje URL adresu CGI programu, který bude spuštěn
• parametr ENTYPE má standardní hodnotu "application/x-www-form-urlencoded", pouze pokud formulář obsahuje element FILE, měla by být použita hodnota "multipart/form-data"
• způsob odeslání informace o informacích, vyplněných ve formuláři, programu specifikuje parametr METHOD
– GET připojuje informaci k URL a programu je zpřístupňuje jako parametry prostředí
– POST posílá informaci jako standardní vstup
• při resetu formuláře (tlačítkem RESET) je spuštěn kód specifikovaný parametrem ONRESET, při odeslání formuláře tlačítkem SUBMIT jde o kód určený parametrem ONSUBMIT
Elementy rozhraní
• elementy rozhraní definujeme pomocí tagu INPUT, jeho atribut TYPE určuje, jaký element bude vytvořen
• tlačítko (BUTTON)
NAME = "jméno elementu"
VALUE = "text na tlačítku"
ONCLICK = "kód JavaScriptu"
>
• pokud chceme, aby stisk vyvolal nějakou akci, je nutné ji specifikovat pomocí ONCLICK
• zaškrtávací pole (CHECKBOX)
• pokud chceme vyvolat po stisku tlačítka SUBMIT nějakou akci, je atribut ACTION povinný
• atribut ACTION obsahuje URL adresu CGI programu, který bude spuštěn
• parametr ENTYPE má standardní hodnotu "application/x-www-form-urlencoded", pouze pokud formulář obsahuje element FILE, měla by být použita hodnota "multipart/form-data"
• způsob odeslání informace o informacích, vyplněných ve formuláři, programu specifikuje parametr METHOD
– GET připojuje informaci k URL a programu je zpřístupňuje jako parametry prostředí
– POST posílá informaci jako standardní vstup
• při resetu formuláře (tlačítkem RESET) je spuštěn kód specifikovaný parametrem ONRESET, při odeslání formuláře tlačítkem SUBMIT jde o kód určený parametrem ONSUBMIT
Elementy rozhraní
• elementy rozhraní definujeme pomocí tagu INPUT, jeho atribut TYPE určuje, jaký element bude vytvořen
• tlačítko (BUTTON)
NAME = "jméno elementu"
VALUE = "text na tlačítku"
ONCLICK = "kód JavaScriptu"
>
• pokud chceme, aby stisk vyvolal nějakou akci, je nutné ji specifikovat pomocí ONCLICK
• zaškrtávací pole (CHECKBOX)
Formuláře
Obsah přednášky
Formuláře
• formuláře
• CGI skripty
Příští téma: skripty, applety, čeština, design
Formuláře
• HTML formulář vytváříme pomocí párového tagu FORM
• formuláře obsahují elementy rozhraní - textová pole, tlačítka, ...
• každý element rozhraní musí být uvnitř tagu FORM definován samostatným tagem INPUT, SELECT nebo TEXTAREA
• formuláře mohou rovněž obsahovat ostatní elementy, jako jsou hlavičky, odstavce, tabulky, ...
• formuláře nemůžeme vnořovat
FORM
• formulář zobrazený v browseru může uživatel vyplnit a odeslat ke zpracování stiskem tlačítka SUBMIT (elementy SUBMIT nebo IMAGE), které vyvolá CGI program určený atributem ACTION
< FORM ACTION = "server URL"
ENCTYPE = "typ kódování obsahu formuláře"
METHOD = "GET"|"POST
NAME = "jméno formuláře"
ONRESET = "kód JavaScriptu"
ONSUBMIT = "kód JavaScriptu"
TARGET = "jméno okna pro zobrazení dat, které vrací vyvolaný CGI program">
...
< /FORM>
Formuláře
• formuláře
• CGI skripty
Příští téma: skripty, applety, čeština, design
Formuláře
• HTML formulář vytváříme pomocí párového tagu FORM
• formuláře obsahují elementy rozhraní - textová pole, tlačítka, ...
• každý element rozhraní musí být uvnitř tagu FORM definován samostatným tagem INPUT, SELECT nebo TEXTAREA
• formuláře mohou rovněž obsahovat ostatní elementy, jako jsou hlavičky, odstavce, tabulky, ...
• formuláře nemůžeme vnořovat
FORM
• formulář zobrazený v browseru může uživatel vyplnit a odeslat ke zpracování stiskem tlačítka SUBMIT (elementy SUBMIT nebo IMAGE), které vyvolá CGI program určený atributem ACTION
< FORM ACTION = "server URL"
ENCTYPE = "typ kódování obsahu formuláře"
METHOD = "GET"|"POST
NAME = "jméno formuláře"
ONRESET = "kód JavaScriptu"
ONSUBMIT = "kód JavaScriptu"
TARGET = "jméno okna pro zobrazení dat, které vrací vyvolaný CGI program">
...
< /FORM>
IMG
IMG
• pokud je specifikována verze s nižším rozlišením, nahraje se první
• pokud prohlížeč nepodporuje obrázky, zobrazí se alternativní text
• zarovnávání vzhledem o okolnímu textu specifikuje ALIGN
• použití HEIGHT a WIDTH by nemělo býtpro zmenšování obrázků, ale pro urychlení zobrazení stránky
• ISMAP určuje, že jde o obrázkovou mapu na straně serveru
IMG
• při přerušení nahrávání se spustí kód specifikovaný ONABORT, kód při chybě specifikuje ONERROR, po nahrání se spustí kód určený ONLOAD
• obrázkové mapy s více aktivními oblastmi (každá z nich někam odkazuje) se tvoří pomocí tagů AREA a MAP
• celkové rozdělení na aktivní oblasti popisuje MAP
AREA
• jednu oblast v rámci obrázkové mapy a URL s ní spojené popisuje tag AREA, který musí být umístěn uvnitře tagu MAP
< IMG COORDS = "souřadnice"
SHAPE = "tvar"
HREF = "URL odkazu"
NOHREF
TARGET = "jméno cílového okna nebo rámce"
ONMOUSEOUT = "JavaScript kód"
ONMOUSEOVER = "JavaScript kód"
NAME = "jméno oblasti"
univerzální atributy
>
• pokud je specifikována verze s nižším rozlišením, nahraje se první
• pokud prohlížeč nepodporuje obrázky, zobrazí se alternativní text
• zarovnávání vzhledem o okolnímu textu specifikuje ALIGN
• použití HEIGHT a WIDTH by nemělo býtpro zmenšování obrázků, ale pro urychlení zobrazení stránky
• ISMAP určuje, že jde o obrázkovou mapu na straně serveru
IMG
• při přerušení nahrávání se spustí kód specifikovaný ONABORT, kód při chybě specifikuje ONERROR, po nahrání se spustí kód určený ONLOAD
• obrázkové mapy s více aktivními oblastmi (každá z nich někam odkazuje) se tvoří pomocí tagů AREA a MAP
• celkové rozdělení na aktivní oblasti popisuje MAP
AREA
• jednu oblast v rámci obrázkové mapy a URL s ní spojené popisuje tag AREA, který musí být umístěn uvnitře tagu MAP
< IMG COORDS = "souřadnice"
SHAPE = "tvar"
HREF = "URL odkazu"
NOHREF
TARGET = "jméno cílového okna nebo rámce"
ONMOUSEOUT = "JavaScript kód"
ONMOUSEOVER = "JavaScript kód"
NAME = "jméno oblasti"
univerzální atributy
>
AREA
AREA
• souřadnice aktivní oblasti popisuje parametr COORDS - jsou měřeny od levého horního rohu obrázku
• formát souřadníc závisí na hodnotě parametru SHAPE, kterým specifikujeme tvar oblasti
– CIRCLE je kružnioce, COORDS jsou ve tvaru x1, y1, r (střed a poloměr)
– RECT (implicitně), COORDS jsou ve tvaru x1, y1, x2, y2 (levý horní a pravý dolní roh)
– POLY, POLYGON je mnohoúhelník, COORDS jsou tvaru x1, y1, ..., xn, yn (hraniční body)
AREA
• pokud není s oblastí spojen žádný odkaz, musí se vyskytnou parametr NOHREF
• při opuštění oblasti kurzorem myši bude spuštěn kód specifikovaný ONMOUSEOUT, při přejetí oblasti kurzorem dojde ke spuštění kódu definovaného pomocí ONMOUSEOVER
Příklad mapy
HEIGHT="100" ALT="Shapes" USEMAP="mainmap">
• souřadnice aktivní oblasti popisuje parametr COORDS - jsou měřeny od levého horního rohu obrázku
• formát souřadníc závisí na hodnotě parametru SHAPE, kterým specifikujeme tvar oblasti
– CIRCLE je kružnioce, COORDS jsou ve tvaru x1, y1, r (střed a poloměr)
– RECT (implicitně), COORDS jsou ve tvaru x1, y1, x2, y2 (levý horní a pravý dolní roh)
– POLY, POLYGON je mnohoúhelník, COORDS jsou tvaru x1, y1, ..., xn, yn (hraniční body)
AREA
• pokud není s oblastí spojen žádný odkaz, musí se vyskytnou parametr NOHREF
• při opuštění oblasti kurzorem myši bude spuštěn kód specifikovaný ONMOUSEOUT, při přejetí oblasti kurzorem dojde ke spuštění kódu definovaného pomocí ONMOUSEOVER
Příklad mapy
HEIGHT="100" ALT="Shapes" USEMAP="mainmap">
Kotva
Kotva
• tag A nám umožňuje definovat kotvu nebo odkaz
• odkaz je místo, ze kterého se můžeme přenést na jiný dokument (většinou kliknutím myší)
• jako kotva se specifikuje místo v HTML dokumentu, na které se potom lze také dostat jako na odkaz
• kotvu definujeme tak, že specifikujeme atribut NAME (nebo ID)
...
Odkaz
• kotvu bychom neměli kombinovat s ostatními tagy A
• hypertextový odkaz je část obsahu dokumentu, na které uživatel kliknutím vyvolá akci
• nejběžnější akcí je skok na jiné místo v aktuálním dokumentu nebo otevření jiného dokumentu
• odkaz může obsahovat text i grafiku
• na definici odkazu používáme tag A spolu s parametrem HREF
Odkaz
ONCLICK = "JavaScript kód"
ONMOUSEOUT = "JavaScript kód"
ONMOUSEOVER = "JavaScript kód"
TARGET = "jméno cílového okna nebo rámce"
univerzální atributy>...
• pokud uživatel klikne na elementy mezi a , aktivuje odkaz
• hodnotou HREF je URL cílového dokumentu, pokud jde o skok na kotvu, následuje za adresou dokumentu
• #jménokotvy
• tag A nám umožňuje definovat kotvu nebo odkaz
• odkaz je místo, ze kterého se můžeme přenést na jiný dokument (většinou kliknutím myší)
• jako kotva se specifikuje místo v HTML dokumentu, na které se potom lze také dostat jako na odkaz
• kotvu definujeme tak, že specifikujeme atribut NAME (nebo ID)
...
Odkaz
• kotvu bychom neměli kombinovat s ostatními tagy A
• hypertextový odkaz je část obsahu dokumentu, na které uživatel kliknutím vyvolá akci
• nejběžnější akcí je skok na jiné místo v aktuálním dokumentu nebo otevření jiného dokumentu
• odkaz může obsahovat text i grafiku
• na definici odkazu používáme tag A spolu s parametrem HREF
Odkaz
ONCLICK = "JavaScript kód"
ONMOUSEOUT = "JavaScript kód"
ONMOUSEOVER = "JavaScript kód"
TARGET = "jméno cílového okna nebo rámce"
univerzální atributy>...
• pokud uživatel klikne na elementy mezi a , aktivuje odkaz
• hodnotou HREF je URL cílového dokumentu, pokud jde o skok na kotvu, následuje za adresou dokumentu
• #jménokotvy
Odkaz
Odkaz
• pomocí odkazu můžeme také posílat maily, odkazovat na ftp, spouštět kód javascriptu, otevírat lokální soubory, odkazovat na GOPHER servery nebo číst news groups - vše záleží na hodnotě parametru HREF
• odkazované dokumenty lze otevírat i v jiném okně nebo rámci, závisí na parametru TARGET - pokud okno nebo rámec specifikovaného jména neexistuje, prohlížeč otevře nové okno
Odkaz
• předdefinované hodnoty jsou
– _blank pro nové okno (rámec)
– _parent pro rodičovské okno (rámec)
– _self pro okno (rámec) s odkazem
– _top pro celé okno s odkazem (i pokud je rozděleno na rámce)
• akce, které nastanou při pohybu myší
– ONCLICK specifikuje kód spuštěný při kliknutí na odkaz
– ONMOUSEOUT specifikuje kód při opuštění plochy odkazu kurzorem
– ONMOUSEOVER specifikuje kód při přejetí kurzorem myší přes odkaz
Příklad odkazu
• pomocí odkazu můžeme také posílat maily, odkazovat na ftp, spouštět kód javascriptu, otevírat lokální soubory, odkazovat na GOPHER servery nebo číst news groups - vše záleží na hodnotě parametru HREF
• odkazované dokumenty lze otevírat i v jiném okně nebo rámci, závisí na parametru TARGET - pokud okno nebo rámec specifikovaného jména neexistuje, prohlížeč otevře nové okno
Odkaz
• předdefinované hodnoty jsou
– _blank pro nové okno (rámec)
– _parent pro rodičovské okno (rámec)
– _self pro okno (rámec) s odkazem
– _top pro celé okno s odkazem (i pokud je rozděleno na rámce)
• akce, které nastanou při pohybu myší
– ONCLICK specifikuje kód spuštěný při kliknutí na odkaz
– ONMOUSEOUT specifikuje kód při opuštění plochy odkazu kurzorem
– ONMOUSEOVER specifikuje kód při přejetí kurzorem myší přes odkaz
Příklad odkazu
Dokument začíná
Skok na začátek
Obrázek
Obrázek
• v HTML lze zobrazit obrázky ve dvou formátech
– JPEG - lepší pro fotografie (ztrátová komprese)
– GIF - pro obrázky, ikony, ... - 256 barev, umožňuje transparentnost, animace
• obrázek může být obsažen v odkazu, takže se kliknutím na něj otevře odkaz
• na místě obrázku může být i obrázková mapa s několika klikatelnými oblastmi, každá může vést na jiné URL
Vložení obrázku
• obrázek je specifikován tagem IMG
< IMG SRC = "URL adresa obrázku" LOWSRC = "adresa obrázku s nižším rozlišením"
ALT = "alternativní text"
ALIGN = "LEFT"|"RIGHT"|"TOP"|"BOTTOM" BORDER = "šířka okraje v pixelech"
HEIGHT = "výška obrázku v pixelech nebo
procentech plochy prohlížeče"
WIDTH = "šířka obrázku v pixelech"
HSPACE = "horizontální vzdálenost obrázku a okolí"
VSPACE = "vertikální vzdálenost obrázku a okolí"
ISMAP
USEMAP = "#obrázková mapa"
NAME = "jméno obrázku"
ONABORT = "JavaScript kód"
ONERROR = "JavaScript kód"
ONLOAD = "JavaScript kód"
univerzální atributy>
• v HTML lze zobrazit obrázky ve dvou formátech
– JPEG - lepší pro fotografie (ztrátová komprese)
– GIF - pro obrázky, ikony, ... - 256 barev, umožňuje transparentnost, animace
• obrázek může být obsažen v odkazu, takže se kliknutím na něj otevře odkaz
• na místě obrázku může být i obrázková mapa s několika klikatelnými oblastmi, každá může vést na jiné URL
Vložení obrázku
• obrázek je specifikován tagem IMG
< IMG SRC = "URL adresa obrázku" LOWSRC = "adresa obrázku s nižším rozlišením"
ALT = "alternativní text"
ALIGN = "LEFT"|"RIGHT"|"TOP"|"BOTTOM" BORDER = "šířka okraje v pixelech"
HEIGHT = "výška obrázku v pixelech nebo
procentech plochy prohlížeče"
WIDTH = "šířka obrázku v pixelech"
HSPACE = "horizontální vzdálenost obrázku a okolí"
VSPACE = "vertikální vzdálenost obrázku a okolí"
ISMAP
USEMAP = "#obrázková mapa"
NAME = "jméno obrázku"
ONABORT = "JavaScript kód"
ONERROR = "JavaScript kód"
ONLOAD = "JavaScript kód"
univerzální atributy>
Příklad tabulky
Příklad tabulky
Jméno-Příjmení-Příjem
Jan-Ondroušek-1000
Karel-Máj-856
JMÉNO | PŘÍJMENÍ | PRODEJ |
---|---|---|
Jan | Ondroušek | 1000 |
Karel | Máj | 856 |
Jméno-Příjmení-Příjem
Jan-Ondroušek-1000
Karel-Máj-856
CAPTION
CAPTION
• tag TABLE také může obsahovat párový tag CAPTION, specifikující popis tabulky
• tag CAPTION by neměl být umístěn uvnitř tagů TD, TH nebo TR
• atribut ALIGN určuje, zda bude popis umístěn nad nebo pod tabulkou
text popisu
Příklad tabulky 2
Měsíc-Prodej
-A-B
Leden-457-345
Únor-477-99
Analýza prodeje
• tag TABLE také může obsahovat párový tag CAPTION, specifikující popis tabulky
• tag CAPTION by neměl být umístěn uvnitř tagů TD, TH nebo TR
• atribut ALIGN určuje, zda bude popis umístěn nad nebo pod tabulkou
text popisu
Příklad tabulky 2
Měsíc | Prodej | |
---|---|---|
A | B | |
Leden | 457 | 345 |
Únor | 477 | 99 |
Měsíc-Prodej
-A-B
Leden-457-345
Únor-477-99
Analýza prodeje
TABLE
TABLE
• pomocí atributů lze nastavit výšku a šířku tabulky a browser se ji bude snažit dodržet, v některých případech (dlouhé nezalamovatelné řádky textu v malých buňkách) to není možné
• standardní výška a šířka je dána obsahem buněk, pokud je specifikována, tabulka je zmenšena (zvětšena) na specifikované rozměry
• parametr COLS indikuje, kolik virtuálních sloupců se potencionálně vejde do okna
COLS
• každý reálný sloupec pak zabírá jeden virtuální sloupec
• pokud specifikujeme WIDTH, bude se dělit jen tato šířka (ne celé okno)
• pokud je takto určená šířka sloupce příliš malá (v porovnání s obsahem), je šířka buňky zvětšena podle obsahu
• pokud tabulky obsahuje více sloupců než je nastaveno v COLS, sloupce navíc budou mít minimální možnou šířku, zbylé místo se rozdělí mezi správný počet rovnoměrně
Řádek tabulky
• řádek tabulky je specifikován pomocí tagu TR, který obsahuje tagy TD pro specifikaci buněk a TH pro specifikaci záhlaví tabulky
VALIGN = "BASELINE"|"BOTTOM"|"MIDDLE"|"TOP"
BGCOLOR = "barva pozadí">...
• přičemž ALIGN určuje horizontální zarovnání tabulky a VALIGN vertikální zarovnání obsahu buňky na řádku
• pomocí atributů lze nastavit výšku a šířku tabulky a browser se ji bude snažit dodržet, v některých případech (dlouhé nezalamovatelné řádky textu v malých buňkách) to není možné
• standardní výška a šířka je dána obsahem buněk, pokud je specifikována, tabulka je zmenšena (zvětšena) na specifikované rozměry
• parametr COLS indikuje, kolik virtuálních sloupců se potencionálně vejde do okna
COLS
• každý reálný sloupec pak zabírá jeden virtuální sloupec
• pokud specifikujeme WIDTH, bude se dělit jen tato šířka (ne celé okno)
• pokud je takto určená šířka sloupce příliš malá (v porovnání s obsahem), je šířka buňky zvětšena podle obsahu
• pokud tabulky obsahuje více sloupců než je nastaveno v COLS, sloupce navíc budou mít minimální možnou šířku, zbylé místo se rozdělí mezi správný počet rovnoměrně
Řádek tabulky
• řádek tabulky je specifikován pomocí tagu TR, který obsahuje tagy TD pro specifikaci buněk a TH pro specifikaci záhlaví tabulky
BGCOLOR = "barva pozadí">...
• přičemž ALIGN určuje horizontální zarovnání tabulky a VALIGN vertikální zarovnání obsahu buňky na řádku
Buňka
Buňka
• text obsažený v buňce tabulky specifikujeme tagem TD (uvnitř tagu TR)
VALIGN = "BASELINE"|"BOTTOM"|"MIDDLE"|"TOP"
BGCOLOR = "barva pozadí"
COLSPAN = "množství sloupců, které buňka zabírá"
ROWSPAN = "množství řádků, které buňka zabírá"
HEIGHT = "doporučená výška buňky v pixelech"
WIDTH = "doporučená šířka buňky v pixelech"
NOWRAP>obsah buňky
• parametr ALIGN zde specifikuje horizontální zarovnání obsahu buňky, NOWRAP zakazuje zalomení v buňce
Hlavička tabulky
• tag TH specifikuje buňky tabulky, jejichž obsah je zobrazen písmem o vyšší váze než obsah ostatních buněk
• používá se pro záhlaví řádků či sloupců, použití a parametry jsou stejné jako u TD
VALIGN = "BASELINE"|"BOTTOM"|"MIDDLE"|"TOP"
BGCOLOR = "barva pozadí"
COLSPAN = "množství sloupců, které buňka zabírá"
ROWSPAN = "množství řádků, které buňka zabírá"
HEIGHT = "doporučená výška buňky v pixelech"
WIDTH = "doporučená šířka buňky v pixelech"
NOWRAP>obsah hlavičkové buňky
• text obsažený v buňce tabulky specifikujeme tagem TD (uvnitř tagu TR)
BGCOLOR = "barva pozadí"
COLSPAN = "množství sloupců, které buňka zabírá"
ROWSPAN = "množství řádků, které buňka zabírá"
HEIGHT = "doporučená výška buňky v pixelech"
WIDTH = "doporučená šířka buňky v pixelech"
NOWRAP>obsah buňky
• parametr ALIGN zde specifikuje horizontální zarovnání obsahu buňky, NOWRAP zakazuje zalomení v buňce
Hlavička tabulky
• tag TH specifikuje buňky tabulky, jejichž obsah je zobrazen písmem o vyšší váze než obsah ostatních buněk
• používá se pro záhlaví řádků či sloupců, použití a parametry jsou stejné jako u TD
BGCOLOR = "barva pozadí"
COLSPAN = "množství sloupců, které buňka zabírá"
ROWSPAN = "množství řádků, které buňka zabírá"
HEIGHT = "doporučená výška buňky v pixelech"
WIDTH = "doporučená šířka buňky v pixelech"
NOWRAP>obsah hlavičkové buňky
Obrázky, Odkazy, Tabulky
Přednáška 14
Obsah přednášky
• Obrázky
• Odkazy
• Tabulky
Příští téma: Formuláře, skripty, applety, čeština, design www stránek
Tabulky
• tabulky jsou vhodné pokud potřebujeme prezentovat informace uspořádané do řádků a sloupců
• často se také tabulky používají jako nástroj pro rozvržení informací na stránce
• tabulky jsou definovány uvnitř párového tagu TABLE
• tag TR definuje řádek tabulky, TH hlavičku a TD jednu buňku tabulky
TABLE
< TABLE ALIGN = "LEFT"|"RIGHT"
BGCOLOR = "standardní barva pozadí tabulky"
BORDER = "šířka okraje tabulky v pixelech"
CELLPADDING = "prostor mezi okrajem buňky a
jejím obsahem v pixelech"
CELLSPACING = "prostor mezi buňkami tabulky
v pixelech"
HEIGHT = "výška tabulky v pixelech nebo
procentech šířky okna prohlížeče"
WIDTH = "šířka tabulky v pixelech nebo
procentech šířky okna prohlížeče"
COLS = "počet virtuálních sloupců"
HSPACE = "vzdálenost horizontálního okraje
tabulky a okolí"
VSPACE = "vzdálenost vertikálního okraje
tabulky a okolí "
>
Obsah přednášky
• Obrázky
• Odkazy
• Tabulky
Příští téma: Formuláře, skripty, applety, čeština, design www stránek
Tabulky
• tabulky jsou vhodné pokud potřebujeme prezentovat informace uspořádané do řádků a sloupců
• často se také tabulky používají jako nástroj pro rozvržení informací na stránce
• tabulky jsou definovány uvnitř párového tagu TABLE
• tag TR definuje řádek tabulky, TH hlavičku a TD jednu buňku tabulky
TABLE
< TABLE ALIGN = "LEFT"|"RIGHT"
BGCOLOR = "standardní barva pozadí tabulky"
BORDER = "šířka okraje tabulky v pixelech"
CELLPADDING = "prostor mezi okrajem buňky a
jejím obsahem v pixelech"
CELLSPACING = "prostor mezi buňkami tabulky
v pixelech"
HEIGHT = "výška tabulky v pixelech nebo
procentech šířky okna prohlížeče"
WIDTH = "šířka tabulky v pixelech nebo
procentech šířky okna prohlížeče"
COLS = "počet virtuálních sloupců"
HSPACE = "vzdálenost horizontálního okraje
tabulky a okolí"
VSPACE = "vzdálenost vertikálního okraje
tabulky a okolí "
>
FRAMESET
FRAMESET
< FRAMESET COLS = "seznam šířek sloupců"
ROWS = "seznam výšek řádků"
BORDER = "šířka okolí v pixelch"
BORDERCOLOR = "barva okraje rámců"
FRAMEBORDER = "YES"|"NO"
ONLOAD = "JavaScript kód"
ONUNLOAD = "JavaScript kód"
ONBLUR = "JavaScript kód"
ONFOCUS = "JavaScript kód"
>
• COLS je čárkami oddělený seznam šířek jednotlivých rámců (pro sloupcové rámce) - pokud jedna z hodnot chybí, doplní se na plnou velikost okna browseru
NOFRAMES
• šířku lze zadat v pixelech, procentech okna browseru nebo * (tolik kolik lze)
• seznam výšek rámců (při řádkových rámcích) se zadává pomocí parametru ROWS
• jeden z COLS, ROWS je povinný
• alternativní text pro prohlížeče nepodporující rámce označuje párový tag NOFRAMES
< NOFRAMES> text pro browsery bez rámců < /NOFRAMES>
Příklad rámců
< HTML> < HEAD> < TITLE> Příklad na použití rámců
< /TITLE>
< /HEAD>
< FRAMESET COLS = "200,*">
< NOFRAMES>
Bez rámců budete bez textu
< /NOFRAMES>
< FRAME SRC = "framemenu.html" NAME = "menu">
< FRAMESET ROWS = "30%,*">
< FRAME SRC = "framehelp.html" NAME = "help">
< FRAME SRC = "framemain.html" NAME = "main">
< /FRAMESET>
< /FRAMESET>
< /HTML>
< FRAMESET COLS = "seznam šířek sloupců"
ROWS = "seznam výšek řádků"
BORDER = "šířka okolí v pixelch"
BORDERCOLOR = "barva okraje rámců"
FRAMEBORDER = "YES"|"NO"
ONLOAD = "JavaScript kód"
ONUNLOAD = "JavaScript kód"
ONBLUR = "JavaScript kód"
ONFOCUS = "JavaScript kód"
>
• COLS je čárkami oddělený seznam šířek jednotlivých rámců (pro sloupcové rámce) - pokud jedna z hodnot chybí, doplní se na plnou velikost okna browseru
NOFRAMES
• šířku lze zadat v pixelech, procentech okna browseru nebo * (tolik kolik lze)
• seznam výšek rámců (při řádkových rámcích) se zadává pomocí parametru ROWS
• jeden z COLS, ROWS je povinný
• alternativní text pro prohlížeče nepodporující rámce označuje párový tag NOFRAMES
< NOFRAMES> text pro browsery bez rámců < /NOFRAMES>
Příklad rámců
< HTML> < HEAD> < TITLE> Příklad na použití rámců
< /TITLE>
< /HEAD>
< FRAMESET COLS = "200,*">
< NOFRAMES>
Bez rámců budete bez textu
< /NOFRAMES>
< FRAME SRC = "framemenu.html" NAME = "menu">
< FRAMESET ROWS = "30%,*">
< FRAME SRC = "framehelp.html" NAME = "help">
< FRAME SRC = "framemain.html" NAME = "main">
< /FRAMESET>
< /FRAMESET>
< /HTML>
Rámce
Rámce
• rámce jsou individuální, nezávisle rolovatelné části browseru - okna uvnitře okna browseru
• každý rámec má vlastní URL, které identifikuje dokument v něm zobrazený
• rámec je definován tagem FRAME obsaženým uvnitř tagu FRAMESET
• příliš se nedoporučuje rámce používat (13% uživatelů je nemá možnost použít), vedou k chybám v navigaci, ...
FRAME
< FRAME BORDERCOLOR = "barva"
FRAMEBORDER = "YES"|"NO"
MARGINHEIGHT = "výška okraje v pixelech"
MARGINWIDTH = "šířka okraje v pixelech"
NAME = "jméno rámce"
NORESIZE
SCROLLING = "YES"|"NO"|"AUTO"
SRC = "URL" >
• množina rámců je definována tagem FRAMESET, takové množiny mohou být vnořené (jeden rámec lze dále dělit)
• dokument obsahující FRAMESET slouží jen k definici rámců, už neobsahuje část BODY
• rámce jsou individuální, nezávisle rolovatelné části browseru - okna uvnitře okna browseru
• každý rámec má vlastní URL, které identifikuje dokument v něm zobrazený
• rámec je definován tagem FRAME obsaženým uvnitř tagu FRAMESET
• příliš se nedoporučuje rámce používat (13% uživatelů je nemá možnost použít), vedou k chybám v navigaci, ...
FRAME
< FRAME BORDERCOLOR = "barva"
FRAMEBORDER = "YES"|"NO"
MARGINHEIGHT = "výška okraje v pixelech"
MARGINWIDTH = "šířka okraje v pixelech"
NAME = "jméno rámce"
NORESIZE
SCROLLING = "YES"|"NO"|"AUTO"
SRC = "URL" >
• množina rámců je definována tagem FRAMESET, takové množiny mohou být vnořené (jeden rámec lze dále dělit)
• dokument obsahující FRAMESET slouží jen k definici rámců, už neobsahuje část BODY
Seznamy
Seznamy
• první tři hodnoty u seznamů s odrážkami, ostatní u číslovaných
• u některých browserů se nahrazuje symbol jen u aktivní hodnoty, jinde od této položky dále!
Seznam definic
• seznam definic je ohraničen párovým tagem DL
• atribut compact umístí definovaný termín na stejný řádek jako vysvětlení
• seznam definic obsahuje termíny specifikované tagem DT a vysvětlené tagem DD
Příklad definic
HTML
je ...
BODY
je něco jiného
HEAD
je hlavička
• první tři hodnoty u seznamů s odrážkami, ostatní u číslovaných
• u některých browserů se nahrazuje symbol jen u aktivní hodnoty, jinde od této položky dále!
- -
- První-1. První
- Druha-4. Druha
- Treti-5. Treti
- -
- podseznam-Podseznam
• - podseznam 2-Podseznam 2
• - podseznam-Podseznam
Seznam definic
• seznam definic je ohraničen párovým tagem DL
• atribut compact umístí definovaný termín na stejný řádek jako vysvětlení
- ...
• seznam definic obsahuje termíny specifikované tagem DT a vysvětlené tagem DD
Příklad definic
- HTML
- je ..
- BODY
- je něco jiného
- HEAD
- je hlavička
HTML
je ...
BODY
je něco jiného
HEAD
je hlavička
Ostatní formátování
Ostatní formátování
• tag BASEFONT nastavuje základní velikost písma v dokumentu (1-7), přepisuje velikost nastavenou uživatelem v browseru
...
• BIG - zvětšuje velikost písma o 1
...
• SMALL - zmenšuje velikost písma o 1
...
• SUB, SUP - text jako dolní a horní index
... ...
Seznamy
• prvkem vyskytujícím se v mnoha dokumentech jsou seznamy, proto pro ně existují i speciální tagy
• máme seznamy
– číslované
– nečíslované
– definiční
• seznam z odrážkami specifikujeme pomocí tagu UL, přičemž jednotlivé položky přidáváme tagem LI
• tag BASEFONT nastavuje základní velikost písma v dokumentu (1-7), přepisuje velikost nastavenou uživatelem v browseru
• BIG - zvětšuje velikost písma o 1
...
• SMALL - zmenšuje velikost písma o 1
...
• SUB, SUP - text jako dolní a horní index
... ...
Seznamy
• prvkem vyskytujícím se v mnoha dokumentech jsou seznamy, proto pro ně existují i speciální tagy
• máme seznamy
– číslované
– nečíslované
– definiční
• seznam z odrážkami specifikujeme pomocí tagu UL, přičemž jednotlivé položky přidáváme tagem LI
Seznam s odrážkami
Seznam s odrážkami
• nepovinný atribut TYPE určí typ odrážky
– circle je obyčejná odrážka
– disc je čtverec
– square je kroužek
• číslovaný seznam tvoříme podobně, pouze pomocí tagu OL
univerzální atributy>
...
• START určuje počáteční hodnotu a TYPE typ číslování (oba nepovinné)
Prvky seznamů
• prvky seznamů se vkládají pomocí nepárového tagu LI, který se může vyskytovat uvnitř tagů OL, UL
• jeden element určený LI může obsahovat i další tagy, třeba i jiné seznamy
VALUE = "hodnota" univerzální atributy>
• počáteční hodnota položky v číslovaném seznamu může být nastavena pomocí parametru VALUE
• typ symbolu nebo číslice před položkou může být změnět parametrem TYPE
• nepovinný atribut TYPE určí typ odrážky
– circle je obyčejná odrážka
– disc je čtverec
– square je kroužek
• číslovaný seznam tvoříme podobně, pouze pomocí tagu OL
univerzální atributy>
...
• START určuje počáteční hodnotu a TYPE typ číslování (oba nepovinné)
Prvky seznamů
• prvky seznamů se vkládají pomocí nepárového tagu LI, který se může vyskytovat uvnitř tagů OL, UL
• jeden element určený LI může obsahovat i další tagy, třeba i jiné seznamy
VALUE = "hodnota" univerzální atributy>
• počáteční hodnota položky v číslovaném seznamu může být nastavena pomocí parametru VALUE
• typ symbolu nebo číslice před položkou může být změnět parametrem TYPE
Písmo
Písmo
• vlastnosti použitého písma umožňuje měnit párový tag FONT
POINT-SIZE = "velikost v bodech"
SIZE = "velikost" WEIGHT = "váha">
...
• FACE specifikuje čárkami oddělený seznam jmen typů písma - jak specifických (Courier CE), tak jmen skupin písem
– monospace, serif, sans-serif, cursive, fantasy
Písmo
• pokud není první písmo v seznamu dostupné, použije se druhé, ...
• proto je dobré seznam uzavírat jménem skupiny písma
• vhodná písma (rozšířená) pro použití jsou - Arial, Times New Roman, Courier, Helvetica, Verdana
• bodovou velikost písma můžeme definovat pomocí POINT-SIZE, lepší je ale tuto možnost příliš nevyužívat (kvůli nastavení browserů u uživatelů)
Písmo
• velikost písma můžeme lépe definovat pomocí parametru SIZE, který definuje relativní velikost písma od 1 do 7 (1 je nejmenší písmo)
• pokud použijeme před číslem + nebo -, dojde ke zvýšení (snížení) velikosti písma nastavené tagem BASEFONT
• váhu písma určujeme atributem WEIGHT, možné hodnoty jsou od 100 do 900 (krok po 100), přičemž 100 je nejméně silná varianta
• vlastnosti použitého písma umožňuje měnit párový tag FONT
POINT-SIZE = "velikost v bodech"
SIZE = "velikost" WEIGHT = "váha">
...
• FACE specifikuje čárkami oddělený seznam jmen typů písma - jak specifických (Courier CE), tak jmen skupin písem
– monospace, serif, sans-serif, cursive, fantasy
Písmo
• pokud není první písmo v seznamu dostupné, použije se druhé, ...
• proto je dobré seznam uzavírat jménem skupiny písma
• vhodná písma (rozšířená) pro použití jsou - Arial, Times New Roman, Courier, Helvetica, Verdana
• bodovou velikost písma můžeme definovat pomocí POINT-SIZE, lepší je ale tuto možnost příliš nevyužívat (kvůli nastavení browserů u uživatelů)
Písmo
• velikost písma můžeme lépe definovat pomocí parametru SIZE, který definuje relativní velikost písma od 1 do 7 (1 je nejmenší písmo)
• pokud použijeme před číslem + nebo -, dojde ke zvýšení (snížení) velikosti písma nastavené tagem BASEFONT
• váhu písma určujeme atributem WEIGHT, možné hodnoty jsou od 100 do 900 (krok po 100), přičemž 100 je nejméně silná varianta
Formátování textu
Formátování textu
• B - tučný text
...
• I - text kurzívou
...
• S, STRIKE - přeškrtnutý text
... ...
• STRONG - silně zvýrazněný text
...
• TT - neproporcionální text
...
• U - podtržený text
...
Logické formátování
• CITE - řádková citace
...
• CODE - zdrojový kód
• EM - zvýrazněný text
...
• KBD - vstup z klávesnice
...
• VAR - proměnná
...
• nepárový tag PLAINTEXT - zobrazuje zbytek dokumentu neformátovaně
• B - tučný text
...
• I - text kurzívou
...
• S, STRIKE - přeškrtnutý text
• STRONG - silně zvýrazněný text
...
• TT - neproporcionální text
...
• U - podtržený text
...
Logické formátování
• CITE - řádková citace
...
• CODE - zdrojový kód
...
• EM - zvýrazněný text
...
• KBD - vstup z klávesnice
...
• VAR - proměnná
...
• nepárový tag PLAINTEXT - zobrazuje zbytek dokumentu neformátovaně
Další blokové tagy
Další blokové tagy
• párový tag PRE zobrazuje text v odstavci neformátovaně a to neproporcionálním písmem
• v rámci tohoto tagu jsou mezery i konce řádků ze zdrojového textu zachovány
• tag PRE zachovává platnost ostatních tagů, tedy pokud chceme zobrazit neformátovaně ostatní HTML tagy, musíme použít vyhrazené znaky < >
• element PRE je začíná na novém řádku a je shora oddělen volným místem
Další blokové tagy
univerzální atributy>
neformátovaný text
• atribut WRAP zapíná zalamování
• podobně jako PRE pracuje párový tag XMP, navíc ruší platnost ostatních tagů
neformátovaný text
• párový tag DIV ohraničuje významový blok, je využíván hlavně pro aplikaci stylů a zarovnávání na oblast s více elementy, začíná na samostatné řádce
univerzální atributy>
elementy
• párový tag PRE zobrazuje text v odstavci neformátovaně a to neproporcionálním písmem
• v rámci tohoto tagu jsou mezery i konce řádků ze zdrojového textu zachovány
• tag PRE zachovává platnost ostatních tagů, tedy pokud chceme zobrazit neformátovaně ostatní HTML tagy, musíme použít vyhrazené znaky < >
• element PRE je začíná na novém řádku a je shora oddělen volným místem
Další blokové tagy
univerzální atributy>
neformátovaný text
• atribut WRAP zapíná zalamování
• podobně jako PRE pracuje párový tag XMP, navíc ruší platnost ostatních tagů
• párový tag DIV ohraničuje významový blok, je využíván hlavně pro aplikaci stylů a zarovnávání na oblast s více elementy, začíná na samostatné řádce
univerzální atributy>
elementy
Formátování
Formátování
• nepárový tag BR vkládá zalomení řádku
• na rozdíl od P nepřidává před nový řádek žádné volné místo
• pokud zalamujeme text kolem nějakého jiného elementu (obrázku), můžeme pomocí atributu CLEAR přinutit text pokračovat na dalším prázdném řádku
• párový tag SPAN přepíná mezi styly, použití vysvětlíme u DHTML
...
Formátování
• párový tag CENTER způsobí vycentrování obsahu
• takto lze centrovat i obrázky nebo jiný obsah, který nelze centrovat jinak
• některé tagy mají atribut ALIGN, jeho nastavení přepisuje centrování pomocí tagu CENTER
...
• pokud chceme zabránit zalamování textu, uzavřeme jej do párového tagu NOBR
...
Formátování
• místo, kde by k zalomení mohlo dojít (pokud by si to velikost okna browseru vyžadovala) specifikuje tag WBR
• horizontální čáru přes okno (rámec) kreslí tag HR
NOSHADE SIZE = "tloušťka" WIDTH = "šířka" >
• NOSHADE - čára bez stínu,
• SIZE - šířka v pixelech (implicitně 2)
• WIDTH - horizontální šířka v pixelech nebo procentech stránky (rámce)
• nepárový tag BR vkládá zalomení řádku
• na rozdíl od P nepřidává před nový řádek žádné volné místo
• pokud zalamujeme text kolem nějakého jiného elementu (obrázku), můžeme pomocí atributu CLEAR přinutit text pokračovat na dalším prázdném řádku
• párový tag SPAN přepíná mezi styly, použití vysvětlíme u DHTML
...
Formátování
• párový tag CENTER způsobí vycentrování obsahu
• takto lze centrovat i obrázky nebo jiný obsah, který nelze centrovat jinak
• některé tagy mají atribut ALIGN, jeho nastavení přepisuje centrování pomocí tagu CENTER
• pokud chceme zabránit zalamování textu, uzavřeme jej do párového tagu NOBR
Formátování
• místo, kde by k zalomení mohlo dojít (pokud by si to velikost okna browseru vyžadovala) specifikuje tag WBR
• horizontální čáru přes okno (rámec) kreslí tag HR
NOSHADE SIZE = "tloušťka" WIDTH = "šířka" >
• NOSHADE - čára bez stínu,
• SIZE - šířka v pixelech (implicitně 2)
• WIDTH - horizontální šířka v pixelech nebo procentech stránky (rámce)
Ohraničení odstavce
Ohraničení odstavce
• odstavec ohraničuje tag P
• všechny elementy P začínají na novém řádku a obvykle mají před sebou volné místo
• uzavírací tag zajišťuje, že za odstavcem bude vynecháno volné místo
• použijeme-li bez uzavíracího tagu, dojde pouze k zalomení řádku spolu s vložením místa před element
univerzální atributy>
text odstavce
Blokové tagy
• párový tag ADDRESS zobrazí odstavec ve formátu adresy
• takový odstavec začíná na novém řádku
adresa
párový tag BLOCKQUOTE zobrazí odstavec jako citaci
takový odstavec začíná na novém řádku a je zleva odsazen
• odstavec ohraničuje tag P
• všechny elementy P začínají na novém řádku a obvykle mají před sebou volné místo
• uzavírací tag zajišťuje, že za odstavcem bude vynecháno volné místo
• použijeme-li bez uzavíracího tagu, dojde pouze k zalomení řádku spolu s vložením místa před element
univerzální atributy>
text odstavce
Blokové tagy
• párový tag ADDRESS zobrazí odstavec ve formátu adresy
• takový odstavec začíná na novém řádku
adresa
párový tag BLOCKQUOTE zobrazí odstavec jako citaci
takový odstavec začíná na novém řádku a je zleva odsazen
citace
Formátování dokumentu
Přednáška č. 14
Obsah přednášky
Téma:
• Formátování dokumentu
• formátování bloků
• formátování textu
• další formátovací tagy
• výčty
• rámce
Příští téma: tabulky, odkazy, obrázky
Tělo dokumentu
• vlastní obsah dokumentu je zapsán uvnitř párového tagu BODY
• celý dokument je členěný do odstavců, přičemž browser vždy před zobrazením odstavce ignoruje formátování zdrojového textu, což znamená že
– převede konce řádků na mezery
– více mezer za sebou nahradí mezerou jedinou
– zalomí text tak, aby se vešel do okna browseru
Blokové tagy
• blokové tagy formátují blokové elementy textu - odstavce, nadpisy, ...
• párové značky H1, ..., H6 zobrazují nadpisy, přičemž H1 je nadpis nejvyšší úrovně
• hlavičky jsou znázorněny písmem většího stupně než normální text, začínají na novém řádku a je před nimi volné místo
< H1 ALIGN = "LEFT"|"RIGHT"|"CENTER"
univerzální atributy>
text nadpisu
< /H1>
Obsah přednášky
Téma:
• Formátování dokumentu
• formátování bloků
• formátování textu
• další formátovací tagy
• výčty
• rámce
Příští téma: tabulky, odkazy, obrázky
Tělo dokumentu
• vlastní obsah dokumentu je zapsán uvnitř párového tagu BODY
• celý dokument je členěný do odstavců, přičemž browser vždy před zobrazením odstavce ignoruje formátování zdrojového textu, což znamená že
– převede konce řádků na mezery
– více mezer za sebou nahradí mezerou jedinou
– zalomí text tak, aby se vešel do okna browseru
Blokové tagy
• blokové tagy formátují blokové elementy textu - odstavce, nadpisy, ...
• párové značky H1, ..., H6 zobrazují nadpisy, přičemž H1 je nadpis nejvyšší úrovně
• hlavičky jsou znázorněny písmem většího stupně než normální text, začínají na novém řádku a je před nimi volné místo
< H1 ALIGN = "LEFT"|"RIGHT"|"CENTER"
univerzální atributy>
text nadpisu
< /H1>
Tělo dokumentu
Tělo dokumentu
• hlavní obsah dokumentu specifikujeme v rámci párového tagu BODY
< BODY BACKGROUND = "URL pozadí"
BGCOLOR = "barva pozadí"
TEXT = "implicitní barva textu"
LINK = "barva odkazů"
ALINK = "barva právě navštěvovaného odkazu"
VLINK = "barva navštíveného odkazu"
ONLOAD = "JavaScript kód"
ONUNLOAD = "JavaScript kód"
ONBLUR = "JavaScript kód"
ONFOCUS = "JavaScript kód"
univerzální atributy
>< /BODY>
Atributy BODY
• BACKGROUND specifikuje relativní nebo absolutní URL obrázku, který bude na pozadí dokumentu (obrázek bude uspořádán dlaždicově)
• ONLOAD specifikuje kód v JavaScriptu, který bude spuštěn po ukončení nahrávání dokumentu
• ONUNLOAD - při odstranění dokumentu
• ONFOCUS - kód spuštění po získání události onFocus indikující získání Focusu (aktivity)
Příklad BODY
• ONBLUR - kód spuštěný při získání události onBlur indikující ztrátu Focusu
< BODY BACGROUND = "rose.gif"
TEXT = "green"
VLINK = "navy"
ONLOAD = "Ahoj()"
>
< /BODY>
• hlavní obsah dokumentu specifikujeme v rámci párového tagu BODY
< BODY BACKGROUND = "URL pozadí"
BGCOLOR = "barva pozadí"
TEXT = "implicitní barva textu"
LINK = "barva odkazů"
ALINK = "barva právě navštěvovaného odkazu"
VLINK = "barva navštíveného odkazu"
ONLOAD = "JavaScript kód"
ONUNLOAD = "JavaScript kód"
ONBLUR = "JavaScript kód"
ONFOCUS = "JavaScript kód"
univerzální atributy
>< /BODY>
Atributy BODY
• BACKGROUND specifikuje relativní nebo absolutní URL obrázku, který bude na pozadí dokumentu (obrázek bude uspořádán dlaždicově)
• ONLOAD specifikuje kód v JavaScriptu, který bude spuštěn po ukončení nahrávání dokumentu
• ONUNLOAD - při odstranění dokumentu
• ONFOCUS - kód spuštění po získání události onFocus indikující získání Focusu (aktivity)
Příklad BODY
• ONBLUR - kód spuštěný při získání události onBlur indikující ztrátu Focusu
< BODY BACGROUND = "rose.gif"
TEXT = "green"
VLINK = "navy"
ONLOAD = "Ahoj()"
>
< /BODY>
Atribut HTTP-EQUIV
Atribut HTTP-EQUIV
• HTTP-EQUIV se používá místo NAME u vlastností používaných pro HTTP odezvu - nejčastěji
– Refresh - zdržení v sekundách, po kterém dojde ke znovunahrání stránky (lze specifikovat jako druhý parametr i URL alternativní stránky)
– Expires - udává čas a datum (ve formátu RCF850 GMT), kdy vyprší platnost daného dokumentu, hodnota 0 znamená, že dokument je prošlý už teď
CONTENT = "Sun, 28 Dec 11:11:11 GMT"
Příklad hlavičky
– Content-Type udává typ dokumentu a znakovou sadu
< HTML>
< HEAD>
< TITLE> Moje krásná stránka < /TITLE>
< BASE HREF = "http://www.mendelu.cz/~zpezlar
TARGET = "MainFrame">
< META NAME="Author" CONTENT="Zdeněk Pezlar">< META NAME="Keywords" CONTENT="HTML, výuka">< META HTTP-EQUIV="Refresh" CONTENT="2;URL='http://www.mendelu.cz/~petrj'">
< META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset='ISO-8859-2'">
< /HEAD>< /HTML>
• HTTP-EQUIV se používá místo NAME u vlastností používaných pro HTTP odezvu - nejčastěji
– Refresh - zdržení v sekundách, po kterém dojde ke znovunahrání stránky (lze specifikovat jako druhý parametr i URL alternativní stránky)
– Expires - udává čas a datum (ve formátu RCF850 GMT), kdy vyprší platnost daného dokumentu, hodnota 0 znamená, že dokument je prošlý už teď
CONTENT = "Sun, 28 Dec 11:11:11 GMT"
Příklad hlavičky
– Content-Type udává typ dokumentu a znakovou sadu
< HTML>
< HEAD>
< TITLE> Moje krásná stránka < /TITLE>
< BASE HREF = "http://www.mendelu.cz/~zpezlar
TARGET = "MainFrame">
< META NAME="Author" CONTENT="Zdeněk Pezlar">< META NAME="Keywords" CONTENT="HTML, výuka">< META HTTP-EQUIV="Refresh" CONTENT="2;URL='http://www.mendelu.cz/~petrj'">
< META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset='ISO-8859-2'">
< /HEAD>< /HTML>
Tag BASE
Tag BASE
• pokud není BASE specifikován, základní adresa se určuje z umístění dokumentu
• informace, které nejsou definovány ostatními elementy, můžeme do dokumentu vkládat pomocí tagu META
• identifikujeme vlastnosti dokumentu, které se vizuálně neprojeví
< BASE HREF = "základní URL"
TARGET = "cílové okno nebo rámec"
>
Tag META
• pomocí tagu META vkládáme dvojice jméno/hodnota
• META informace jsou zejména důležité, pokud máme grafickou stránku - vyhledávací stroje v grafice informace o stránce nenajdou, v části META ano
< META NAME = "jméno vlastnosti"
HTTP-EQUIV = "jméno položky"
CONTENT = "hodnota"
>
Atribut NAME
• NAME udává jméno vlastnosti - nejčastěji Author, Classification, Copyright, Generator
• důležité jsou i vlastnosti využívané vyhledávacími stroji - Description (popis dokumentu), Keywords (klíčová slova), Robots (informace o indexaci)
• atribut CONTENT udává hodnotu vlastnosti specifikované částí NAME - může obsahovat i více hodnot
CONTENT ="první;jméno='druhá';jméno2='třetí'..."
• pokud není BASE specifikován, základní adresa se určuje z umístění dokumentu
• informace, které nejsou definovány ostatními elementy, můžeme do dokumentu vkládat pomocí tagu META
• identifikujeme vlastnosti dokumentu, které se vizuálně neprojeví
< BASE HREF = "základní URL"
TARGET = "cílové okno nebo rámec"
>
Tag META
• pomocí tagu META vkládáme dvojice jméno/hodnota
• META informace jsou zejména důležité, pokud máme grafickou stránku - vyhledávací stroje v grafice informace o stránce nenajdou, v části META ano
< META NAME = "jméno vlastnosti"
HTTP-EQUIV = "jméno položky"
CONTENT = "hodnota"
>
Atribut NAME
• NAME udává jméno vlastnosti - nejčastěji Author, Classification, Copyright, Generator
• důležité jsou i vlastnosti využívané vyhledávacími stroji - Description (popis dokumentu), Keywords (klíčová slova), Robots (informace o indexaci)
• atribut CONTENT udává hodnotu vlastnosti specifikované částí NAME - může obsahovat i více hodnot
CONTENT ="první;jméno='druhá';jméno2='třetí'..."
Struktura stránky
Struktura stránky
• základní struktura stránky je dána třemi párovými tagy - HTML, HEAD a BODY
• HTML specifikuje celý dokument jako HTML stránku - ohraničuje jej
• před HTML - může být ještě specifikace DOCTYPE - verze HTML pro zpracování SGML nástroji
< HTML >
< /HTML >
Hlavička dokumentu
• hlavička dokumentu je vymezena párovým tagem HEAD, který může obsahovat vnořené tagy TITLE, BASE, META, STYLE, LINK, ISINDEX, SCRIPT
< HEAD > ... < /HEAD >
• titulek dokumentu zapsaný v titulní liště prohlížeče specifikujeme párovým tagem TITLE
< TITLE > ... < /TITLE >
• některé vyhledávače titulek využívají
• pokud jej nespecifikujeme, browser si dosadí automaticky svůj titulek
• pro specifikaci základního URL dokumentu slouží nepárový tag BASE
• k této základní adrese se budou vztahovat všechny relativní odkazy z dokumentu
• pomocí této značky můžeme také specifikovat okno (rámec), ve kterém budeme odkazované dokumenty otevírat
• základní struktura stránky je dána třemi párovými tagy - HTML, HEAD a BODY
• HTML specifikuje celý dokument jako HTML stránku - ohraničuje jej
• před HTML - může být ještě specifikace DOCTYPE - verze HTML pro zpracování SGML nástroji
< HTML >
< /HTML >
Hlavička dokumentu
• hlavička dokumentu je vymezena párovým tagem HEAD, který může obsahovat vnořené tagy TITLE, BASE, META, STYLE, LINK, ISINDEX, SCRIPT
< HEAD > ... < /HEAD >
• titulek dokumentu zapsaný v titulní liště prohlížeče specifikujeme párovým tagem TITLE
< TITLE > ... < /TITLE >
• některé vyhledávače titulek využívají
• pokud jej nespecifikujeme, browser si dosadí automaticky svůj titulek
• pro specifikaci základního URL dokumentu slouží nepárový tag BASE
• k této základní adrese se budou vztahovat všechny relativní odkazy z dokumentu
• pomocí této značky můžeme také specifikovat okno (rámec), ve kterém budeme odkazované dokumenty otevírat
Adresy
Adresy
• příklad skládání adres
URL dokumentu
http://www.mendelu.cz/~zpezlar/index.html
relativní adresa
apv/apv.html
výsledná adresa
http://www.mendelu.cz/~zpezlar/apv/apv.html
• rezervované znaky v URL - / : @ ; ? # & = % + { } | \ ~ [ ] `(a mezery jako +)
• tyto znaky by se měly zapisovat jako %xx, kde xx je hexadecimální kód znaku
Speciální znaky
• některé znaky v HTML zapisujeme pomocí číselné nebo entitní reference
• číselná reference je ve formě \nnn, kde nnn je číslo specifikující znak
• entitní reference je ve formě \nnn, kde nnn je řetězec specifikující znak
• jde o znaky s kódem od 161 výše (do 255), některé z nich jsme schopni napsat i normálně díky například českému kódování dokumentu
Vyhrazené znaky
• jsou znaky, které by normálním zápisem mohly způsobit mylnou interpretaci HTML dokumentu
znak -číselně-entitně
"-"-"
<-<-<
>->->
&-&-&
nezalom. mezera- -
• příklad skládání adres
URL dokumentu
http://www.mendelu.cz/~zpezlar/index.html
relativní adresa
apv/apv.html
výsledná adresa
http://www.mendelu.cz/~zpezlar/apv/apv.html
• rezervované znaky v URL - / : @ ; ? # & = % + { } | \ ~ [ ] `(a mezery jako +)
• tyto znaky by se měly zapisovat jako %xx, kde xx je hexadecimální kód znaku
Speciální znaky
• některé znaky v HTML zapisujeme pomocí číselné nebo entitní reference
• číselná reference je ve formě \nnn, kde nnn je číslo specifikující znak
• entitní reference je ve formě \nnn, kde nnn je řetězec specifikující znak
• jde o znaky s kódem od 161 výše (do 255), některé z nich jsme schopni napsat i normálně díky například českému kódování dokumentu
Vyhrazené znaky
• jsou znaky, které by normálním zápisem mohly způsobit mylnou interpretaci HTML dokumentu
znak -číselně-entitně
"-"-"
<-<-<
>->->
&-&-&
nezalom. mezera- -
Barvy
Barvy
• barva může být v HTML specifikována buď jménem, nebo jako šesticiferná hexadecimální RGB specifikace (vždy dva znaky pro každou barevnou složku) začínající #
• existuje 16 předdefinovaných barev (v některých standardech i více)
název barvy; český název
Aqua; jasně modrozelená
Black; černá
Blue; modrá
Fuchsia; anilinová červená
Gray; šedá
Green; zelená
Lime; citrónově zelená
Maroon; kaštanová
Navy; námořnická modrá
Olive; olivová
Purple; purpurová
Red; červená
Silver; stříbrná
Teal; tmavě modrozelená
White; bílá
Yellow; žlutá
• barva může být v HTML specifikována buď jménem, nebo jako šesticiferná hexadecimální RGB specifikace (vždy dva znaky pro každou barevnou složku) začínající #
• existuje 16 předdefinovaných barev (v některých standardech i více)
název barvy; český název
Aqua; jasně modrozelená
Black; černá
Blue; modrá
Fuchsia; anilinová červená
Gray; šedá
Green; zelená
Lime; citrónově zelená
Maroon; kaštanová
Navy; námořnická modrá
Olive; olivová
Purple; purpurová
Red; červená
Silver; stříbrná
Teal; tmavě modrozelená
White; bílá
Yellow; žlutá
Tagy
Tagy
• jsou značky, které sdělují browseru jak zobrazit text či jiný objekt
• uzavírají se mezi <> -
• rozlišujeme
– párové – mají i uzavírací část obsahující znak / - tučně
– nepárové – neobsahují uzavírací tag
• speciální tag – komentář
Adresy ve WWW - URL
• protokol HTTP, který je používán pro komunikaci WWW klienta se serverem, používá pro specifikaci informačních zdrojů formát URL (Uniform Resource Locator), který proto používáme i v HTML
• tvar URL
zdroj://počítač/dokument ;parametry?dotaz#fragment
• většina částí je nepovinná
Typy zdroje
• file - soubor na lokálním disku
• ftp - soubor ftp serveru
• gopher - dokument gopheru
• http - WWW stránky
• mailto - elektronická pošta
• news - diskusní skupiny
• nntp - diskuse na určitém serveru
• prospero - adresářová služba prospero
• telnet - vzdálený přístup jinam
• wais - IS WAIS
• jsou značky, které sdělují browseru jak zobrazit text či jiný objekt
• uzavírají se mezi <> -
• rozlišujeme
– párové – mají i uzavírací část obsahující znak / - tučně
– nepárové – neobsahují uzavírací tag
• speciální tag – komentář
Adresy ve WWW - URL
• protokol HTTP, který je používán pro komunikaci WWW klienta se serverem, používá pro specifikaci informačních zdrojů formát URL (Uniform Resource Locator), který proto používáme i v HTML
• tvar URL
zdroj://počítač/dokument ;parametry?dotaz#fragment
• většina částí je nepovinná
Typy zdroje
• file - soubor na lokálním disku
• ftp - soubor ftp serveru
• gopher - dokument gopheru
• http - WWW stránky
• mailto - elektronická pošta
• news - diskusní skupiny
• nntp - diskuse na určitém serveru
• prospero - adresářová služba prospero
• telnet - vzdálený přístup jinam
• wais - IS WAIS
Počítač a dokument
Počítač a dokument
• část počítač se skládá z částí
uživatel : heslo @ adresa : port
• nejčastější je část adresa - IP nebo doménová adresa počítače
• část dokument určuje cestu a jméno souboru, který je požadován
• od předchozí části je oddělen lomítkem /, které není součástí cesty
• parametry, dotaz a fragmenty se používají jen v některých případech
Příklady adres URL
• www stránka
http://www.mendelu.cz/user/zpezlar
• ftp
ftp://franta@ftp.vse.cz/pub/doc.txt
• pošta
mailto:petrj@mendelu.cz
• news
news:alt.rec.recipes
• soubor
file:///c:/texty/index.html
Relativní adresy
• relativní ULR obsahuje jen část informace o umístění zdroje - část se převezme z kontextu, kterým je nejčastěji URL dokumentu, ve kterém se relativní URL vyskytuje
• v relativní URL mohou být i znaky . a .. s obvyklými významy
• lze použít vždy pro zdroje file, ftp, http, nntp, někdy pro gopher, wais, prospero
• část počítač se skládá z částí
uživatel : heslo @ adresa : port
• nejčastější je část adresa - IP nebo doménová adresa počítače
• část dokument určuje cestu a jméno souboru, který je požadován
• od předchozí části je oddělen lomítkem /, které není součástí cesty
• parametry, dotaz a fragmenty se používají jen v některých případech
Příklady adres URL
• www stránka
http://www.mendelu.cz/user/zpezlar
• ftp
ftp://franta@ftp.vse.cz/pub/doc.txt
• pošta
mailto:petrj@mendelu.cz
• news
news:alt.rec.recipes
• soubor
file:///c:/texty/index.html
Relativní adresy
• relativní ULR obsahuje jen část informace o umístění zdroje - část se převezme z kontextu, kterým je nejčastěji URL dokumentu, ve kterém se relativní URL vyskytuje
• v relativní URL mohou být i znaky . a .. s obvyklými významy
• lze použít vždy pro zdroje file, ftp, http, nntp, někdy pro gopher, wais, prospero
Podmínky u maker
Podmínky u maker
• podmínka je logický výraz zadaný do sloupce Podmínky do řádku k příslušné podmiňované akci
• pokud chceme na jednu podmínku navázat více akcí, ve sloupci Podmínky pak stačí uvádět jen tři tečky
• kromě samotných maker můžeme spouštět i skupiny maker - musíme v mřížce návrhu maker zobrazit i Název makra
Makra 3
• do sloupce Název makra se pak vepíše název prvního makra ve skupině, pak přidáme akce, ...
• po uložení na disk se použitý název vztahuje ke skupině maker, pro jednotlivé makro používáme skupina.makro
• kombinaci kláves lze makru přiřadit definicí ve sloupci Název makra, ve sloupci Akce bude SpustitMakro(makro)
Makra 4
• ^A je CTRL A
• +{F1} je SHIFT F1
• {INSERT} je INS
• takto přiřazené kombinace musí být uloženy jako skupina maker pod názvem Automatické klávesy
• makro s názvem AutoExec je spuštěno automaticky při otevření databáze (držením SHIFT lze spuštění zrušit)
Moduly
• stejně jako makra jsou moduly nástrojem pro automatizaci databázových úloh
• jsou ale vyjádřeny pomocí jazyka Visual Basic
• podmínka je logický výraz zadaný do sloupce Podmínky do řádku k příslušné podmiňované akci
• pokud chceme na jednu podmínku navázat více akcí, ve sloupci Podmínky pak stačí uvádět jen tři tečky
• kromě samotných maker můžeme spouštět i skupiny maker - musíme v mřížce návrhu maker zobrazit i Název makra
Makra 3
• do sloupce Název makra se pak vepíše název prvního makra ve skupině, pak přidáme akce, ...
• po uložení na disk se použitý název vztahuje ke skupině maker, pro jednotlivé makro používáme skupina.makro
• kombinaci kláves lze makru přiřadit definicí ve sloupci Název makra, ve sloupci Akce bude SpustitMakro(makro)
Makra 4
• ^A je CTRL A
• +{F1} je SHIFT F1
• {INSERT} je INS
• takto přiřazené kombinace musí být uloženy jako skupina maker pod názvem Automatické klávesy
• makro s názvem AutoExec je spuštěno automaticky při otevření databáze (držením SHIFT lze spuštění zrušit)
Moduly
• stejně jako makra jsou moduly nástrojem pro automatizaci databázových úloh
• jsou ale vyjádřeny pomocí jazyka Visual Basic
Dokumenty HTML
Obsah přednášky č. 12
Dokumenty HTML
• HTML = HyperText Markup Language
• jde o jazyk sloužící ke tvorbě hypertextových dokumentů (stránek) pro WWW
• hypertext = nelineární textový dokument obsahující odkazy na jiné dokumenty
• v HTML jsou některé části interpretovány jako obrázky, zvuk, tabulky, animace, ...
• dokumenty HTML obsahují prostý text bez jakéhokoliv formátování
Browsery
• vlastní formátování má na starosti prohlížeč (browser), který na základě řídících značek (tagů) určuje vizuální podobu dokumentu
• používané browsery – NN, MSIE, Lynx, Mosaic, Amaya
• ne všechny browsery umožňují využít všech vlastností HTML, nám bude stačit NN 3.0, MSIE 3.0 a vyšší
• je dobré při tvorbě stránky pamatovat i na odlišné nebo starší browsery
Editory
• pro zápis stačí jakýkoliv textový editor, vhodný je například shareware Homesite
• existují i WYSIWYG (FrontPage)
• zapsané stránce budeme říkat HTML dokument
• nejdůležitější vlastností HTML dokumentů je nezávislost na platformě
• existují různé verze HTML, my se budeme držet nejrozšířenější 3.2, spolu s browsery podporovanými rozšířeními
Dokumenty HTML
• HTML = HyperText Markup Language
• jde o jazyk sloužící ke tvorbě hypertextových dokumentů (stránek) pro WWW
• hypertext = nelineární textový dokument obsahující odkazy na jiné dokumenty
• v HTML jsou některé části interpretovány jako obrázky, zvuk, tabulky, animace, ...
• dokumenty HTML obsahují prostý text bez jakéhokoliv formátování
Browsery
• vlastní formátování má na starosti prohlížeč (browser), který na základě řídících značek (tagů) určuje vizuální podobu dokumentu
• používané browsery – NN, MSIE, Lynx, Mosaic, Amaya
• ne všechny browsery umožňují využít všech vlastností HTML, nám bude stačit NN 3.0, MSIE 3.0 a vyšší
• je dobré při tvorbě stránky pamatovat i na odlišné nebo starší browsery
Editory
• pro zápis stačí jakýkoliv textový editor, vhodný je například shareware Homesite
• existují i WYSIWYG (FrontPage)
• zapsané stránce budeme říkat HTML dokument
• nejdůležitější vlastností HTML dokumentů je nezávislost na platformě
• existují různé verze HTML, my se budeme držet nejrozšířenější 3.2, spolu s browsery podporovanými rozšířeními
Přizpůsobení vzhledu sestavy
Přizpůsobení vzhledu sestavy
• jedna možnost Formát - automatický formát
• další možnosti
– přidání obrázku na pozadí - do Vlastnosti - obrázek zapíšeme jeho diskové jméno, pak nastavíme vlastnosti - oříznutí, zarovnání, ...
– grafické prvky jako čára, obdélník, ... - myší z panelu nástrojů, pak změníme vlastnosti myší nebo z dialogu Vlastnosti
– pomocí programových prostředků VB
Makra
• makra slouží zejména k automatizaci často prováděných úkolů
• makra vytváříme z okna databáze - otevřeme dialogové okno určené pro definici a zadání makra
• v tomto okně jsou sloupce Název makra, Podmínka, Akce, Komentář (pokud nejsou všechny, lze je zobrazit z nabídky Zobrazit)
• kliknutím na buňku ve sloupci Akce se zobrazí seznam akcí, které mohou být do makra zahrnuty (zároveň se dole objevuje možnost nastavení parametrů těchto akcí)
• takto zadáme posloupnost akcí, které se při spuštění makra rozjedou
• makro lze zadat i jako podmíněné (akce se spustí jen při splnění podmínky)
• jedna možnost Formát - automatický formát
• další možnosti
– přidání obrázku na pozadí - do Vlastnosti - obrázek zapíšeme jeho diskové jméno, pak nastavíme vlastnosti - oříznutí, zarovnání, ...
– grafické prvky jako čára, obdélník, ... - myší z panelu nástrojů, pak změníme vlastnosti myší nebo z dialogu Vlastnosti
– pomocí programových prostředků VB
Makra
• makra slouží zejména k automatizaci často prováděných úkolů
• makra vytváříme z okna databáze - otevřeme dialogové okno určené pro definici a zadání makra
• v tomto okně jsou sloupce Název makra, Podmínka, Akce, Komentář (pokud nejsou všechny, lze je zobrazit z nabídky Zobrazit)
• kliknutím na buňku ve sloupci Akce se zobrazí seznam akcí, které mohou být do makra zahrnuty (zároveň se dole objevuje možnost nastavení parametrů těchto akcí)
• takto zadáme posloupnost akcí, které se při spuštění makra rozjedou
• makro lze zadat i jako podmíněné (akce se spustí jen při splnění podmínky)
Vytvoření sestavy
Vytvoření sestavy
• buď pomocí průvodce sestavou
– obecný průvodce
– průvodce štítky
– průvodce grafem
– automatická sloupcová nebo tabelární sestava
• pomocí návrhového zobrazení
• z filtrovaných záznamů - v požadovaném filtru vybereme ze seznamu nový objekt - nová sestava
Návrhové zobrazení
• jako u formulářů i zde je rozdělení do sekcí, kromě sekcí shodných s formulářem zde máme
– záhlaví skupiny - pro zobrazení informací společných pro více záznamů
– pata skupiny - používá se pro zobrazení souhrnů pro danou skupinu
• celkový vzhled sestavy lze změnit pomocí Automatického formátu (pak zvolíme styl)
Zásady práce v návrhovém zobrazení
• pro přidání nového pole do sestavy slouží tlačítko seznam polí
• přesouvání a změny velikostí ovládacích prvků se provádí myší
• text a data zobrazená na ovládacím prvku měníme aktivací textu myší a následným zapsáním nové hodnoty
• ke změně pořadí řazení a seskupování slouží ikona řazení a seskupování
• buď pomocí průvodce sestavou
– obecný průvodce
– průvodce štítky
– průvodce grafem
– automatická sloupcová nebo tabelární sestava
• pomocí návrhového zobrazení
• z filtrovaných záznamů - v požadovaném filtru vybereme ze seznamu nový objekt - nová sestava
Návrhové zobrazení
• jako u formulářů i zde je rozdělení do sekcí, kromě sekcí shodných s formulářem zde máme
– záhlaví skupiny - pro zobrazení informací společných pro více záznamů
– pata skupiny - používá se pro zobrazení souhrnů pro danou skupinu
• celkový vzhled sestavy lze změnit pomocí Automatického formátu (pak zvolíme styl)
Zásady práce v návrhovém zobrazení
• pro přidání nového pole do sestavy slouží tlačítko seznam polí
• přesouvání a změny velikostí ovládacích prvků se provádí myší
• text a data zobrazená na ovládacím prvku měníme aktivací textu myší a následným zapsáním nové hodnoty
• ke změně pořadí řazení a seskupování slouží ikona řazení a seskupování
Řazení a seskupování
Řazení a seskupování
• data v sestavě jsou uspořádána podle stejných kritérií jako data v podkladové tabulce nebo dotazu
• v okně vlastností sestavy bude u vlastnosti řadit podle uveden název pole, podle kterého je základní tabulka řazena
• zároveň musí být zapnuta vlastnost Zapnout filtr
• nastavení řadit podle lze potlačit v okně řazení a seskupování
• v horní části nastavíme výrazy podle kterých bude provedeno řazení
• v dolní části se nastavují vlastnosti definující seskupování
– záhlaví skupiny
– pata skupiny
– seskupovat - způsob seskupení hodnot (vše, podle výrazu, ...)
– interval skupiny - platné hodnoty
– udržovat pohromadě - celá skupina či část na stránce
Zobrazení náhled
• jde o tiskové zobrazení sestavy, často jím prohlížíme až hotovou sestavu
• data nelze upravovat, pouze podrobně kontrolovat a využívat ovládací prvky sestavy
• lze volit zvětšení
• má u sestav podobnou funkci jako formulářové zobrazení nebo zobrazení datového listu u formulářů a tabulek
• data v sestavě jsou uspořádána podle stejných kritérií jako data v podkladové tabulce nebo dotazu
• v okně vlastností sestavy bude u vlastnosti řadit podle uveden název pole, podle kterého je základní tabulka řazena
• zároveň musí být zapnuta vlastnost Zapnout filtr
• nastavení řadit podle lze potlačit v okně řazení a seskupování
• v horní části nastavíme výrazy podle kterých bude provedeno řazení
• v dolní části se nastavují vlastnosti definující seskupování
– záhlaví skupiny
– pata skupiny
– seskupovat - způsob seskupení hodnot (vše, podle výrazu, ...)
– interval skupiny - platné hodnoty
– udržovat pohromadě - celá skupina či část na stránce
Zobrazení náhled
• jde o tiskové zobrazení sestavy, často jím prohlížíme až hotovou sestavu
• data nelze upravovat, pouze podrobně kontrolovat a využívat ovládací prvky sestavy
• lze volit zvětšení
• má u sestav podobnou funkci jako formulářové zobrazení nebo zobrazení datového listu u formulářů a tabulek
Akční dotazy
Akční dotazy
• začátek je opět stejný jako u výběrového dotazu, poté vybereme Dotaz - typ dotazu (vytvářecí, aktualizační, přidávací, odstraňovací)
• u vytvářecího dotazu vytvoříme z výsledků novou tabulku, jejíž jméno musíme u této možnosti zadat, lze i vybrat, zda bude nová tabulka umístěna v aktuální či jiné databázi
Odstraňovací dotazy
• v návrhové mřížce se nově objeví řádek odstranit, ze seznamu polí tabulky sem přetáhneme * (bude zde pak z)
• kritéria pro odstranění záznamů nastavíme u ostatních polí (u kterých je v řádku odstranit kde)
• tlačítkem na panelu nástrojů si lze prohlédnout odstraňované záznamy i provést odstranění
Přidávací a aktualizační dotazy
• přidávací dotaz - jako u vytvářecího dotazu se objeví dialog na zadání názvu tabulky pro přidávání
• opět lze specifikovat kritéria, která musí přidávaná pole splňovat
• aktualizační dotaz - pro pole určená k aktualizaci vyplníme aktualizační výraz do řádku Aktualizovat, ostatní pole budou sloužit jako kritéria aktualizace
Sestavy
• sestavy jsou nástroj na tiskovou prezentaci dat uchovávaných v databázi
• sestavy lze zobrazit
– v návrhovém zobrazení určeném pro tvorbu nebo úpravu prezentace
– v náhledu před tiskem, který slouží k vizuální kontrole uspořádání údajů
– v ukázce rozvržení, sloužící k rychlému zobrazení základního uspořádání sestavy (jen pro určitý vzorek dat)
• začátek je opět stejný jako u výběrového dotazu, poté vybereme Dotaz - typ dotazu (vytvářecí, aktualizační, přidávací, odstraňovací)
• u vytvářecího dotazu vytvoříme z výsledků novou tabulku, jejíž jméno musíme u této možnosti zadat, lze i vybrat, zda bude nová tabulka umístěna v aktuální či jiné databázi
Odstraňovací dotazy
• v návrhové mřížce se nově objeví řádek odstranit, ze seznamu polí tabulky sem přetáhneme * (bude zde pak z)
• kritéria pro odstranění záznamů nastavíme u ostatních polí (u kterých je v řádku odstranit kde)
• tlačítkem na panelu nástrojů si lze prohlédnout odstraňované záznamy i provést odstranění
Přidávací a aktualizační dotazy
• přidávací dotaz - jako u vytvářecího dotazu se objeví dialog na zadání názvu tabulky pro přidávání
• opět lze specifikovat kritéria, která musí přidávaná pole splňovat
• aktualizační dotaz - pro pole určená k aktualizaci vyplníme aktualizační výraz do řádku Aktualizovat, ostatní pole budou sloužit jako kritéria aktualizace
Sestavy
• sestavy jsou nástroj na tiskovou prezentaci dat uchovávaných v databázi
• sestavy lze zobrazit
– v návrhovém zobrazení určeném pro tvorbu nebo úpravu prezentace
– v náhledu před tiskem, který slouží k vizuální kontrole uspořádání údajů
– v ukázce rozvržení, sloužící k rychlému zobrazení základního uspořádání sestavy (jen pro určitý vzorek dat)
Vytváření dotazů
Vytváření dotazů
• jednoduché dotazy
– pomocí průvodce
– v návrhovém zobrazení - na kartě dotazy vybereme možnost vytvoření dotazu v návrhovém zobrazení
• tvorba výběrového dotazu
– vybereme tabulky, které budou do dotazu vstupovat (se kterými budeme pracovat)
– do mřížky návrhu přidáme názvy polí a způsob řazení
– nastavíme vlastnosti Zobrazit - Vlastnosti
Výběrový dotaz
• v poli kritéria vyplníme výraz, omezující výsledné hodnoty dotazu pouze na ty, které výrazu vyhovují
• do výběrového dotazu můžeme přidat i výpočtová pole - Zobrazit - Souhrny, potom buď
– do řádku pole zapíšeme Jméno: výraz složený z polí ve formátu [pole], do řádku tabulka doplníme zdrojovou tabulku, do řádku souhrny zadáme typ agregace
Výběrový dotaz 2
– nebo zapíšeme do řádku pole přímo sumační výraz (funkce Sum(), ...), ve kterém použijeme pole ve formátu [tabulka].[pole], do řádku souhrn doplníme možnost výraz
• pro zápis výrazů je vhodné (i jinde) používat tvůrce výrazů - vyvolání ikonou
• pro výpočtová pole je často nezbytné definovat formát zobrazení Zobrazit - Vlastnosti
• jednoduché dotazy
– pomocí průvodce
– v návrhovém zobrazení - na kartě dotazy vybereme možnost vytvoření dotazu v návrhovém zobrazení
• tvorba výběrového dotazu
– vybereme tabulky, které budou do dotazu vstupovat (se kterými budeme pracovat)
– do mřížky návrhu přidáme názvy polí a způsob řazení
– nastavíme vlastnosti Zobrazit - Vlastnosti
Výběrový dotaz
• v poli kritéria vyplníme výraz, omezující výsledné hodnoty dotazu pouze na ty, které výrazu vyhovují
• do výběrového dotazu můžeme přidat i výpočtová pole - Zobrazit - Souhrny, potom buď
– do řádku pole zapíšeme Jméno: výraz složený z polí ve formátu [pole], do řádku tabulka doplníme zdrojovou tabulku, do řádku souhrny zadáme typ agregace
Výběrový dotaz 2
– nebo zapíšeme do řádku pole přímo sumační výraz (funkce Sum(), ...), ve kterém použijeme pole ve formátu [tabulka].[pole], do řádku souhrn doplníme možnost výraz
• pro zápis výrazů je vhodné (i jinde) používat tvůrce výrazů - vyvolání ikonou
• pro výpočtová pole je často nezbytné definovat formát zobrazení Zobrazit - Vlastnosti
Parametrický dotaz
Parametrický dotaz
• parametrický dotaz se tvoří doplněním výběrového či křížového dotazu o kritéria zadaná až po spuštění dotazu
• u parametrického dotazu program po vyvolání žádá zadání kritérií - žádá textem zadaným do [] v řádku kritéria, hodnota pole se pak porovnává se zadanou hodnotou
• i v parametrickém dotazu lze definovat kritéria pomocí výrazů
• pro kontrolu zadávaných parametrů je dobré definovat datový typ parametru -Dotaz - Parametry
• v křížovém dotazu musíme nastavit datový typ parametrů, musíme rovněž nastavit vlastnost Hlavičky sloupců
• u ostatních parametrických dotazů musíme určit datový typ pro pole A/N a pro pole z externí databáze
Křížový dotaz
• používá se pro zobrazení souhrnných hodnot
• je zobrazen formou kontingenční tabulky - v ní jsou data seskupena podle dvou skupin údajů - první je uvedena v hlavičkách řádků, druhá v hlavičkách sloupců
• tvorba je stejná jako u výběrového dotazu potom - Dotaz - Křížový dotaz
• návrhová mřížka je pak obohacena o řádky křížová tabulka a souhrn
• u polí, která se mají objevit jako řádky nastavíme u křížové tabulky hlavička řádků, u sloupců nastavíme hlavička sloupce, u pole, jehož hodnotu chceme zobrazit nastavíme hodnota
• v řádku souhrn vybereme typ agregační funkce, který se použije v křížovém dotazu - Sum, Avg, Count, ... (nebo Výraz)
• parametrický dotaz se tvoří doplněním výběrového či křížového dotazu o kritéria zadaná až po spuštění dotazu
• u parametrického dotazu program po vyvolání žádá zadání kritérií - žádá textem zadaným do [] v řádku kritéria, hodnota pole se pak porovnává se zadanou hodnotou
• i v parametrickém dotazu lze definovat kritéria pomocí výrazů
• pro kontrolu zadávaných parametrů je dobré definovat datový typ parametru -Dotaz - Parametry
• v křížovém dotazu musíme nastavit datový typ parametrů, musíme rovněž nastavit vlastnost Hlavičky sloupců
• u ostatních parametrických dotazů musíme určit datový typ pro pole A/N a pro pole z externí databáze
Křížový dotaz
• používá se pro zobrazení souhrnných hodnot
• je zobrazen formou kontingenční tabulky - v ní jsou data seskupena podle dvou skupin údajů - první je uvedena v hlavičkách řádků, druhá v hlavičkách sloupců
• tvorba je stejná jako u výběrového dotazu potom - Dotaz - Křížový dotaz
• návrhová mřížka je pak obohacena o řádky křížová tabulka a souhrn
• u polí, která se mají objevit jako řádky nastavíme u křížové tabulky hlavička řádků, u sloupců nastavíme hlavička sloupce, u pole, jehož hodnotu chceme zobrazit nastavíme hodnota
• v řádku souhrn vybereme typ agregační funkce, který se použije v křížovém dotazu - Sum, Avg, Count, ... (nebo Výraz)
Sekce formuláře
Sekce formuláře
• tělo formuláře - zobrazuje záznamy z daty - 1 stránka pro jeden či více záznamů
• záhlaví formuláře - v horní části formuláře, obsahuje nadpis, příkazová tlačítka, ... - není v zobrazení datového listu
• pata formuláře - příkazová tlačítka, ... - není zobrazena ve formulářovém zobrazení
• záhlaví stránky a pata stránky - pouze v tištěných formulářích
Tvorba formuláře
• Formulář - Nový, vyvolá průvodce, ...
• pomocí průvodce lze vyvolat i podformulář, takto lze zadávat data do více tabulek současně - zejména u tabulek propojených relací 1:N
• v sekcích formuláře - ovládací prvky - popisy + prvky v zadávání, zobrazování a aktualizacím dat
Ovládací prvky
• popis
• textové pole
• zaškrtávací políčko
• přepínací tlačítko, přepínač (hodnoty A/N)
• příkazové tlačítko
• pole se seznamem
• podformulář
• vlastní prvek - lze vytvořit
Informační formuláře
• pomocí nich je možné zobrazit informaci uživateli, výzvu k zadání dat, nebo zvolit jednu z nabídnutých akcí
• modální - ostatní objekty při něm nejsou přístupné/ nemodální
• do formuláře lze umístit i graf - Vložit -Graf, dále už stejně jako např. v Excelu
• graf je také ovládací pole formuláře
• tělo formuláře - zobrazuje záznamy z daty - 1 stránka pro jeden či více záznamů
• záhlaví formuláře - v horní části formuláře, obsahuje nadpis, příkazová tlačítka, ... - není v zobrazení datového listu
• pata formuláře - příkazová tlačítka, ... - není zobrazena ve formulářovém zobrazení
• záhlaví stránky a pata stránky - pouze v tištěných formulářích
Tvorba formuláře
• Formulář - Nový, vyvolá průvodce, ...
• pomocí průvodce lze vyvolat i podformulář, takto lze zadávat data do více tabulek současně - zejména u tabulek propojených relací 1:N
• v sekcích formuláře - ovládací prvky - popisy + prvky v zadávání, zobrazování a aktualizacím dat
Ovládací prvky
• popis
• textové pole
• zaškrtávací políčko
• přepínací tlačítko, přepínač (hodnoty A/N)
• příkazové tlačítko
• pole se seznamem
• podformulář
• vlastní prvek - lze vytvořit
Informační formuláře
• pomocí nich je možné zobrazit informaci uživateli, výzvu k zadání dat, nebo zvolit jednu z nabídnutých akcí
• modální - ostatní objekty při něm nejsou přístupné/ nemodální
• do formuláře lze umístit i graf - Vložit -Graf, dále už stejně jako např. v Excelu
• graf je také ovládací pole formuláře
MS Access - dotazy, sestavy, moduly, makra
APV přednáška 11
MS Access - dotazy, sestavy, moduly, makra
Obsah přednášky
MS Access - dotazy a jazyk QBE; sestavy
makra a moduly; příště: Úvod do HTML
Dotazy
• dotazy jsou databázové objekty, které umožňují zobrazovat, měnit a analyzovat vybraná data
• výsledky dotazů mohou sloužit jako vstup pro formuláře, sestavy, další dotazy
• v Accessu máme QBE dotazy a SQL dotazy - my se budeme zabývat prvním typem
Typy dotazů
• známe
– výběrové dotazy
– parametrické dotazy
– křížové dotazy
– akční dotazy
• vytvářecí dotazy
• odstraňovací dotazy
• přidávací dotazy
• aktualizační dotazy
– SQL dotazy
MS Access - dotazy, sestavy, moduly, makra
Obsah přednášky
MS Access - dotazy a jazyk QBE; sestavy
makra a moduly; příště: Úvod do HTML
Dotazy
• dotazy jsou databázové objekty, které umožňují zobrazovat, měnit a analyzovat vybraná data
• výsledky dotazů mohou sloužit jako vstup pro formuláře, sestavy, další dotazy
• v Accessu máme QBE dotazy a SQL dotazy - my se budeme zabývat prvním typem
Typy dotazů
• známe
– výběrové dotazy
– parametrické dotazy
– křížové dotazy
– akční dotazy
• vytvářecí dotazy
• odstraňovací dotazy
• přidávací dotazy
• aktualizační dotazy
– SQL dotazy
Datový list
Datový list
• kliknutím na název tabulky získáme zobrazení tabulky ve formátu datového listu - zde lze měnit strukturu tabulky, pojmenovávat pole, typy, řadit, ...
• lze přepnout i na návrhové zobrazení, které je určeno k definování názvů polí, jejich typů a vlastností (i nová pole)
• při zadávání vlastností polí se objevuje i kontextová nápověda, podle té se lze řídit
Relace mezi tabulkami
• nastavují se v okně relace (vyvoláme ikonou Relace v panelu nástrojů)
• přidáme tabulku do okna relací, potom vytvoříme relaci přetažením pole z jedné tabulky do druhé
• nejčastější - cizí klíč (pro typy 1:N) - primární klíč z druhé tabulky (1) přetáhneme do původní (N)
• také můžeme stanovit kardinality N:N (pomocí vložené tabulky) a 1:1
Referenční integrita
• je zde i možnost zajištění referenční integrity (tlačítko)
• pokud má být zajištěna, pak
– nelze do cizího klíče vložit jinou hodnotu,než ty vyskytující se v druhé tabulce v primárním klíči
– nelze v druhé tabulce odstraňovat záznamy, jejichž primární klíč je hodnotou cizího klíče v existující n-tici první tabulky
Zadávání dat
• nejjednodušší v zobrazení datového listu
• zde je možná i úprava dat
• lze měnit i grafické zobrazení datového listu
– myší upravíme písmo (typ, řez, stupeň, ...), šířku sloupce a výšku řádku, skrytí sloupců, efekty buněk (zejména barevné), ...
• kliknutím na název tabulky získáme zobrazení tabulky ve formátu datového listu - zde lze měnit strukturu tabulky, pojmenovávat pole, typy, řadit, ...
• lze přepnout i na návrhové zobrazení, které je určeno k definování názvů polí, jejich typů a vlastností (i nová pole)
• při zadávání vlastností polí se objevuje i kontextová nápověda, podle té se lze řídit
Relace mezi tabulkami
• nastavují se v okně relace (vyvoláme ikonou Relace v panelu nástrojů)
• přidáme tabulku do okna relací, potom vytvoříme relaci přetažením pole z jedné tabulky do druhé
• nejčastější - cizí klíč (pro typy 1:N) - primární klíč z druhé tabulky (1) přetáhneme do původní (N)
• také můžeme stanovit kardinality N:N (pomocí vložené tabulky) a 1:1
Referenční integrita
• je zde i možnost zajištění referenční integrity (tlačítko)
• pokud má být zajištěna, pak
– nelze do cizího klíče vložit jinou hodnotu,než ty vyskytující se v druhé tabulce v primárním klíči
– nelze v druhé tabulce odstraňovat záznamy, jejichž primární klíč je hodnotou cizího klíče v existující n-tici první tabulky
Zadávání dat
• nejjednodušší v zobrazení datového listu
• zde je možná i úprava dat
• lze měnit i grafické zobrazení datového listu
– myší upravíme písmo (typ, řez, stupeň, ...), šířku sloupce a výšku řádku, skrytí sloupců, efekty buněk (zejména barevné), ...
Hledání
Hledání
• funguje obdobně jako v ostatních programech MS Office
• možnost Úpravy - Najít
• pokud máme kurzor v příslušném poli - zadáme hledaný řetězec
• ten může obsahovat i metaznaky
*, ? (libovolný abecední znak), [ ] (jeden ze znaků v závorkách), ! neguje znaky v závorkách, - (určuje interval znaků), # (číslice)
Filtrování
• umožňuje zobrazení pouze vybraných záznamů
• máme tři druhy filtrů
– podle výběru - je-li kritériem část ze záznamu, vybereme tuto část a Záznamy - Filtr - Filtr podle výběru
– podle formuláře -kritéria jsou zadána v dialogu - Záznamy - Filtr -Filtr podle formuláře, jde o hodnoty pole (celé), lze zadat i více hodnot současně
Rozšířený filtr a formuláře
• rozšířený filtr - je opět dialog, navíc lze ale i řazení filtrovaných záznamů - Záznamy - Filtr - rozšířený filtr
• Formuláře
– jde o alternativu k zobrazení datového listu
– máme 4 zobrazení
formulářové zobrazení - každý záznam má svou vlastní stranu
zobrazení datového listu - jako u tabulek
Formuláře
návrhové zobrazení - přizpůsobení vzhledu formuláře, jeho jednotlivých prvků (vkládáme, modifikujeme formát a umístění), u nového formuláře musíme napřed nastavit základní formát - předlohy jsou například v Automatický formát
náhled - pro tisk a prohlídku pře tiskem
• mezi zobrazeními přepínáme tlačítky panelu nástrojů
• formuláře se skládají z jednotlivých sekcí - Zobrazit - Záhlaví/ Pata stránky, ...
• funguje obdobně jako v ostatních programech MS Office
• možnost Úpravy - Najít
• pokud máme kurzor v příslušném poli - zadáme hledaný řetězec
• ten může obsahovat i metaznaky
*, ? (libovolný abecední znak), [ ] (jeden ze znaků v závorkách), ! neguje znaky v závorkách, - (určuje interval znaků), # (číslice)
Filtrování
• umožňuje zobrazení pouze vybraných záznamů
• máme tři druhy filtrů
– podle výběru - je-li kritériem část ze záznamu, vybereme tuto část a Záznamy - Filtr - Filtr podle výběru
– podle formuláře -kritéria jsou zadána v dialogu - Záznamy - Filtr -Filtr podle formuláře, jde o hodnoty pole (celé), lze zadat i více hodnot současně
Rozšířený filtr a formuláře
• rozšířený filtr - je opět dialog, navíc lze ale i řazení filtrovaných záznamů - Záznamy - Filtr - rozšířený filtr
• Formuláře
– jde o alternativu k zobrazení datového listu
– máme 4 zobrazení
formulářové zobrazení - každý záznam má svou vlastní stranu
zobrazení datového listu - jako u tabulek
Formuláře
návrhové zobrazení - přizpůsobení vzhledu formuláře, jeho jednotlivých prvků (vkládáme, modifikujeme formát a umístění), u nového formuláře musíme napřed nastavit základní formát - předlohy jsou například v Automatický formát
náhled - pro tisk a prohlídku pře tiskem
• mezi zobrazeními přepínáme tlačítky panelu nástrojů
• formuláře se skládají z jednotlivých sekcí - Zobrazit - Záhlaví/ Pata stránky, ...
5 NF
5 NF
• R splňuje 5NF, pokud pro každou SZ (R1, ..., Rn) platí, že je implikována klíčovým omezením R
• postup odvození 5NF
– převedeme do 4NF
– pro každou SZ narušující 5NF dekomponujeme relaci na komponenty této spojové závíslosti
• DKNF - ještě navíc omezení hodnot atributů do určitých domén
MS Access
• MS Access - databázový program
• Databáze se v MS Access skládá s tabulek
• jsou s ní spojeny další prvky, jako formuláře, dotazy, sestavy, makra, moduly
• vytvoření databáze - Soubor-Nová databáze - prázdnou DB, průvodce
Tabulky
• při otevření databáze - 6 karet, každá pro jednu komponentu
• na kartě tabulky - tlačítka Otevřít, Návrh, Nová + jména existujících tabulek
• tlačítko Nová - vyvolá průvodce tabulkou - vytvoření tabulky - máme k dispozici řadu předdefinovaných tabulek, polí (zde sloupců, jinak atributů)
Průvodce tabulkou
• na dalších dialozích lze zadat například relace s ostatními tabulkami, primární klíče, ...
• relaci v MS Access tedy nazýváme tabulka, n-tice budou řádky (zde nazvané záznamy) - údaje o jednom objektu
• tabulka je ale jen způsob zobrazení relace (a zde i nepřesný název)
• R splňuje 5NF, pokud pro každou SZ (R1, ..., Rn) platí, že je implikována klíčovým omezením R
• postup odvození 5NF
– převedeme do 4NF
– pro každou SZ narušující 5NF dekomponujeme relaci na komponenty této spojové závíslosti
• DKNF - ještě navíc omezení hodnot atributů do určitých domén
MS Access
• MS Access - databázový program
• Databáze se v MS Access skládá s tabulek
• jsou s ní spojeny další prvky, jako formuláře, dotazy, sestavy, makra, moduly
• vytvoření databáze - Soubor-Nová databáze - prázdnou DB, průvodce
Tabulky
• při otevření databáze - 6 karet, každá pro jednu komponentu
• na kartě tabulky - tlačítka Otevřít, Návrh, Nová + jména existujících tabulek
• tlačítko Nová - vyvolá průvodce tabulkou - vytvoření tabulky - máme k dispozici řadu předdefinovaných tabulek, polí (zde sloupců, jinak atributů)
Průvodce tabulkou
• na dalších dialozích lze zadat například relace s ostatními tabulkami, primární klíče, ...
• relaci v MS Access tedy nazýváme tabulka, n-tice budou řádky (zde nazvané záznamy) - údaje o jednom objektu
• tabulka je ale jen způsob zobrazení relace (a zde i nepřesný název)
MS Access - tabulky a formuláře
APV přednáška 10
5. normální forma
MS Access - tabulky a formuláře
Obsah přednášky
• spojovací závislosti a 5NF
• MS Access - tabulky
• MS Access - formuláře
příště: MS Access - dotazy, sestavy, makra, moduly
Spojovací závislosti
• MHZ obsahuje omezení spojená s dekompozicí relace na dvě části
• při dekompozici na 3 a více částí, a následném spojování, ovšem nedostaneme ty stejné n-tice jako při slučování libovolných dvojic - tedy jde o jinou redundanci
• požadavek bezeztrátovosti dekompozice na více částí je jiný než libovolná MHZ
Spojovací závislost
• SZ(R1, R2, ..., Rn) je omezení na r(R) (kde r(R) je relace vzniklá ze schématu R), které způsobí, že spojení r(R1)*r(R2)*...*r(Rn) je bezeztrátové pro všechny validní relace r(R)
• SZ nepřináší naznačenou redundanci pro
– každé Ri je klíčem výsledku spojení
– nějaké Ri je výsledkem spojení
• jde o postačující podmínky, nikoliv však nutné
• i zde lze identifikovat SZ vynucené FZ a MHZ - SZ (XY, X(R-Y))
• lze dokázat, že SZ nepřináší redundanci, právě když je implikována určitou FZ - a to klíčovým omezením výsledku (K->S)
5. normální forma
MS Access - tabulky a formuláře
Obsah přednášky
• spojovací závislosti a 5NF
• MS Access - tabulky
• MS Access - formuláře
příště: MS Access - dotazy, sestavy, makra, moduly
Spojovací závislosti
• MHZ obsahuje omezení spojená s dekompozicí relace na dvě části
• při dekompozici na 3 a více částí, a následném spojování, ovšem nedostaneme ty stejné n-tice jako při slučování libovolných dvojic - tedy jde o jinou redundanci
• požadavek bezeztrátovosti dekompozice na více částí je jiný než libovolná MHZ
Spojovací závislost
• SZ(R1, R2, ..., Rn) je omezení na r(R) (kde r(R) je relace vzniklá ze schématu R), které způsobí, že spojení r(R1)*r(R2)*...*r(Rn) je bezeztrátové pro všechny validní relace r(R)
• SZ nepřináší naznačenou redundanci pro
– každé Ri je klíčem výsledku spojení
– nějaké Ri je výsledkem spojení
• jde o postačující podmínky, nikoliv však nutné
• i zde lze identifikovat SZ vynucené FZ a MHZ - SZ (XY, X(R-Y))
• lze dokázat, že SZ nepřináší redundanci, právě když je implikována určitou FZ - a to klíčovým omezením výsledku (K->S)
Přihlásit se k odběru:
Příspěvky (Atom)