XHTML – vysunovací nabídky
V dnešním článku ze série o XHTML si ukážeme další ovládací prvek formuláře, vysunovací nabídku.
Element select – ohraničení vysunovací nabídky
Povolený obsah: (optgroup|option)+
Atributy:
%attrs;
- Tato parametrická entita obsahuje další parametrické entity:
%coreattrs;
(atributyid
,class
,style
atitle
),%i18n;
(atributylang
,xml:lang
adir
) a%events;
(atributyonclick
,ondblclick
,onmousedown
,onmouseup
,onmouseover
,onmousemove
,onmouseout
,onkeypress
,onkeydown
aonkeyup
). name CDATA #IMPLIED
- Udává jméno vysunovací nabídky.
size CDATA #IMPLIED
- Specifikuje počet položek, které budou viditelné bez nutnosti skrolování nabídkou. Pokud není zadán, je obvykle viditelná jedna položka, což ale není závazné, interpretace nabídky závisí plně na interpretovi XHTML.
multiple (multiple) #IMPLIED
- Tento atribut říká, že může být najednou vybráno více položek. Pokud není nastaven, smí být vybrána pouze jedna.
disabled (disabled) #IMPLIED
- Umožňuje nabídku „vyřadit“. Význam tohoto atributu je stejný u všech ovládacích prvků.
onchange %Script; #IMPLIED
- Tato událost je aktivována, pokud uživatel změnil hodnotu nabídky. Dojde k tomu ve chvíli, kdy prvek ztratí fokus (de-facto se jedná o událost
onblur
, přičemž navíc musí dojít ke změně hodnoty ovládacího prvku). tabindex %Number; #IMPLIED
- Pomocí tohoto atributu můžete změnit pořádek procházení dokumentu klávesnicí. Jeho popisu jsme se již věnovali v části o odkazech.
onfocus %Script; #IMPLIED
- Tato událost je aktivována, když daná vysunovací nabídka obdrží fokus (tj. je na ni zaměřen kurzor při navigaci klávesou
Tab
nebo je aktivována ukazovacím zařízením). onblur %Script; #IMPLIED
- Tato událost je aktivována ve chvíli, kdy nabídka ztratí fokus, jedná se o protiklad
onfocus
.
Element select v XHTML 1.0 Strict DTD
Element select
ohraničuje vysunovací nabídku. Jeho obsahem jsou jednotlivé položky, každá reprezentovaná jedním elementem option
. Ty se mohou navíc sdružovat do menších skupin pomocí elementu optgroup
.
Element option – položky nabídky
Povolený obsah: (#PCDATA)
Atributy:
%attrs;
- Tato parametrická entita obsahuje další parametrické entity:
%coreattrs;
(atributyid
,class
,style
atitle
),%i18n;
(atributylang
,xml:lang
adir
) a%events;
(atributyonclick
,ondblclick
,onmousedown
,onmouseup
,onmouseover
,onmousemove
,onmouseout
,onkeypress
,onkeydown
aonkeyup
). selected (selected) #IMPLIED
- Tento boolean-atribut říká, že daná položka má být implicitně (po nahrání stránky) vybrána. V každé nabídce by měla být alespoň jedna taková položka, pokud není, může se chování interpretů XHTML lišit, protože specifikace v tomto případě chování nedefinuje. Pokud nabídka má nastaven atribut
multiple
, může být implicitně vybraných i více položek. disabled (disabled) #IMPLIED
- Umožňuje položku „vyřadit“. Význam tohoto atributu je stejný u všech ovládacích prvků.
value CDATA #IMPLIED
- Pomocí tohoto atributu se definuje hodnota, která je s danou položkou spojena. Při odeslání formuláře se z nabídky posílá jméno elementu
select
spolu s hodnotami položek, které jsou v něm vybrány. Pokud atributvalue
nenastavíte, stane se hodnotou položky její textový obsah. label %Text; #IMPLIED
- Pokud se položka nachází uvnitř nějaké skupiny položek (definované elementem
optgroup
) a má tento atribut nastaven, použije se jeho hodnota jako popis položky. K významu tohoto atributu se ještě dostaneme.
Element option v XHTML 1.0 Strict DTD
Každý element option
reprezentuje jednu položku vysunovací nabídky. Jeho obsah se použije jako popisek dané položky. Nyní příklad:
<select name=“OS“>
<option selected=“selected“ value=“0″>Vyberte OS</option>
<option value=“W98″>Windows 98</option>
<option value=“W2000″>Windows 2000</option>
<option value=“WXP“>Windows XP</option>
<option>OS 2</option>
<option value=“Mac“>Mac OS</option>
<option value=“SuSE“>SuSE Linux</option>
<option value=“Red Hat“>Red Hat Linux</option>
</select>
A přibližně takový bude výsledek v prohlížeči:
Všimněte si, že jsme vytvořili jednu položku, která má pouze informativní charakter, říká uživateli, co má dělat. Tu jsme také zvolili jako implicitně vybranou. Když uživatel vybere například položku „Windows 2000“, při odeslání formuláře se bude posílat jméno nabídky („OS“) spolu s hodnotou vybrané položky, tedy „W2000“. Pouze v případě vybrání OS 2 by se odeslal text elementu („OS 2“), protože tato položka nemá přiřazen atribut value
.
Nyní povolíme zobrazení více položek najednou a uživatele necháme vybrat více než jednu položku:
<select name=“OS“ size=“3″ multiple=“multiple“>
<option selected=“selected“ value=“0″>Vyberte OS</option>
<option value=“W98″>Windows 98</option>
<option value=“W2000″>Windows 2000</option>
<option value=“WXP“>Windows XP</option>
<option>OS 2</option>
<option value=“Mac“>Mac OS</option>
<option value=“SuSE“>SuSE Linux</option>
<option value=“Red Hat“>Red Hat Linux</option>
</select>
A výsledek:
Měli byste si ale dávat pozor na jednu věc. To, že lze vybrat více položek najednou, nemusí být zřejmé, navíc mnoho uživatelů neví, jak takový úkon provést (například ve Windows je třeba držet klávesu Ctrl). Proto je třeba uživatele informovat o tom, že lze vybrat více položek a případně mu poskytnou i návod, jak na to.
Element optgroup – skupiny položek
Povolený obsah: (option)+
Atributy:
%attrs;
- Tato parametrická entita obsahuje další parametrické entity:
%coreattrs;
(atributyid
,class
,style
atitle
),%i18n;
(atributylang
,xml:lang
adir
) a%events;
(atributyonclick
,ondblclick
,onmousedown
,onmouseup
,onmouseover
,onmousemove
,onmouseout
,onkeypress
,onkeydown
aonkeyup
). disabled (disabled) #IMPLIED
- Umožňuje položku „vyřadit“. Význam tohoto atributu je stejný u všech ovládacích prvků.
label %Text; #REQUIRED
- Tento povinný atribut určuje popisek skupiny položek.
Element optgroup v XHTML 1.0 Strict DTD
Někdy se dostanete do situace, kdy je již vaše vysunovací nabídka příliš složitá nebo obsahuje podobné položky. V takovém případě je ideální chvíle začlenit položky do určitých skupin, které pomohou uživateli zorientovat se.
Skupiny uvnitř nabídky se vytváří právě pomocí elementu optgroup
. Každý element optgroup
se musí nacházet přímo v elementu select
, skupiny tedy není možné do sebe vnořovat.
Zobrazení takové nabídky opět záleží na prohlížeči, může například vytvořit hierarchické menu nebo vypíchnout názvy jednotlivých skupin v nabídce. Opět si ukážeme příklad:
<select name=“OS“>
<option selected=“selected“ value=“0″>Vyberte OS</option>
<optgroup label=“Windows“>
<option value=“W98″ label=“98″>Windows 98</option>
<option value=“W2000″ label=“2000″>Windows 2000</option>
<option value=“WXP“ label=“XP“>Windows XP</option>
</optgroup>
<optgroup label=“Linux“>
<option value=“SuSE“ label=“SuSE“>SuSE Linux</option>
<option value=“Red Hat“ label=“Red Hat“>Red Hat Linux</option>
</optgroup>
<optgroup label=“Jiné“>
<option>OS 2</option>
<option value=“Mac“>Mac OS</option>
</optgroup>
</select>
A takto zobrazí nabídku váš prohlížeč:
Pomocí atributu label
elementu optgroup
se nastavuje jméno skupiny. Atribut label
elementu option
se používá pro nastavení popisku položky, pokud je nabídka interpretována jako hierarchické menu. Pokud by uživatel zvolil v první úrovni „Windows“, nebylo by logické, aby se v dalším podmenu vyskytovaly popisky „Windows 98“, „Windows 2000“ atd. Naopak stačí pouze „98“, „2000“, protože „Windows“ už uživatel vybral.
Tento popisek nijak neovlivňuje hodnotu položky, ta je stále určena atributem value
nebo obsahem daného elementu option
.
A tím jsme se probrali i posledním ovládacím prvkem formulářů. Příště se budeme zabývat logickou strukturou formulářů.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Windows App: Pracujte odkudkoliv, kdykoliv
3. listopadu 2024 -
Doména .io v ohrožení: Co přinese předání Čagoských ostrovů?
10. října 2024 -
Moderní trendy ve webdesignu: Top trendy pro rok 2024
12. ledna 2024 -
Thunderbolt 4 vs. OCuLink: Přišel čas na upgrade?
27. května 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024