XHTML – povolené obsahy elementů
Již jsme se probrali v podstatě všemi elementy striktního XHTML. Poněkud jsme ale při tom zanedbávali obsah, který pro ně DTD povoluje. To v tomto článku napravíme.
Jak již z tohoto seriálu víte, povolený obsah elementů je reprezentován výčtem elementů (a sekce #PCDATA) spojených určitými speciálními znaky. Mnoho elementů má ale totožný povolený obsah, proto autoři DTD XHTML vytvořili tři parametrické entity – %Flow;
, %Inline;
a %Block;
.
Tyto parametrické entity reprezentují nejčastější povolené obsahy elementů a v průběhu seriálu jsme se s nimi mnohokrát setkali. Mnoho elementů má také z těchto parametrických entit svůj obsah odvozen – většinou je zde o nějaký ten element víc nebo míň.
Nyní si představíme tyto tři nejčastější entity – u každé z nich si zároveň řekneme, které elementy mají z této entity obsah odvozen. Ve všech případech se také dozvíte, pro jaké elementy daná parametrická entita definuje povolený obsah.
Parametrická entita %Flow;
Parametrická entita %Flow;
obsahuje text (#PCDATA) a tyto elementy:
- odstavec (
p
), - nadpisy (
h1
,h2
,h3
,h4
,h5
ah6
), - kontejnery (
div
aspan
), - seznamy a výčty (
ul
,ol
adl
), - blokové sémantické elementy (
blockquote
aaddress
), - externí objekty (
object
aimg
), - řádkové sémantické elementy (
a
,em
,strong
,dfn
,code
,q
,samp
,kbd
,var
,cite
,abbr
,acronym
,sub
asup
), - elementy formulářů (
form
,fieldset
,input
,select
,textarea
,label
abutton
), - a elementy
table
,map
,noscript
,ins
,del
,script
,pre
,hr
abr
.
Všechny tyto elementy a text se mohou vyskytovat v libovolném pořadí a množství.
Jak vidíte, do entity %Flow;
se řadí téměř všechny elementy XHTML. Do elementů, které ji mají nastavenou jako svůj povolený obsah, proto můžete vnořit téměř všechno.
Entitu %Flow;
mají nastavenou jako svůj povolený obsah elementy div
, li
, dd
, ins
a del
.
Obsahy elementů odvozené z parametrické entity %Flow;
Element object
má jako svůj povolený obsah také nastavenu entitu %Flow;
, navíc se zde ale ještě může vyskytovat element param
.
Element fieldset
také může obsahovat elementy z %Flow;
, navíc se zde ale může vyskytovat element legend
– ten se, pokud je přitomen, musí nacházet hned na začátku obsahu elementu, nesmí být předcházen žádným textem ani jinými elementy.
Element button
smí obsahovat všechny elementy z %Flow;
s výjimkou a
, form
, input
, select
, textarea
a button
.
Parametrická entita %Inline;
Parametrická entita %Inline;
obsahuje text (#PCDATA) a tyto elementy:
- řádkový kontejner
span
, - řádkové sémantické elementy (
a
,em
,strong
,dfn
,code
,q
,samp
,kbd
,var
,cite
,abbr
,acronym
,sub
asup
), - externí objekty (
object
aimg
), - řádkové elementy formulářů (
input
,select
,textarea
,label
abutton
), - a elementy
map
,ins
,del
,script
abr
.
Všechny tyto elementy a text se mohou vyskytovat v libovolném pořadí a množství.
Entita %Inline;
v sobě zahrnuje veškerý řádkový obsah – tedy text a řádkové elementy (či elementy, které mohou být blokové i řádkové). Elementy, které mají na tuto entitu svůj obsah nastaven, by měly obsahovat pouze text a s ním spojené elementy (viz výše) – nejsou určeny jako kontejnery pro další prvky.
Na %Inline;
mají svůj obsah nastaven tyto elementy:
- odstavec (
p
), - nadpisy (
h1
,h2
,h3
,h4
,h5
ah6
), - kontejner
span
, - řádkové sémantické elementy s výjimkou
a
(em
,strong
,dfn
,code
,q
,samp
,kbd
,var
,cite
,abbr
,acronym
,sub
asup
), - a elementy
dt
,address
,label
,legend
acaption
.
Obsahy elementů odvozené z parametrické entity %Inline;
Element pre
má nastaven svůj obsah na elementy z entity %Inline;
s výjimkou elementů img
a object
.
Element a
má také svůj obsah nastaven na %Inline;
, výjimku zde ale tvoří element a
(odkazy není možné vnořovat).
Parametrická entita %Block;
Parametrická entita %Block;
obsahuje pouze tyto elementy (ne text):
- odstavec (
p
), - nadpisy (
h1
,h2
,h3
,h4
,h5
ah6
), - kontejner
div
, - seznamy a výčty (
ul
,ol
adl
), - blokové sémantické elementy (
blockquote
aaddress
), - blokové formulářové elementy (
form
afieldset
), - a elementy
table
,noscript
,ins
,del
,script
,pre
ahr
.
Všechny tyto elementy se mohou vyskytovat v libovolném pořadí a množství.
Entita %Block;
v sobě sdružuje blokové elementy. Narozdíl od %Flow;
a %Inline;
ale neobsahuje text – ten do elementů, které na ni mají nastaven povolený obsah, přímo vkládat nemůžete.
Elementy, které mají nastaven povolený obsah na %Block;
, jsou noscript
, body
a blockquote
.
Obsahy elementů odvozené z parametrické entity %Block;
Element map
může obsahovat buď elementy z %Block;
nebo elementy area
.
Element form
může také obsahovat elementy z %Block;
, s jedinou výjimkou – element form
(formuláře se nesmí vnořovat do sebe).
Závěr
A tímto článkem náš seriál po více než roce končí. Jeho čtení vás stálo jistě mnoho úsilí, ale pokud jste vydrželi až sem, můžete si říct, že velmi dobře ovládáte XHTML 1.0 Strict. Přeji vám mnoho dobře kódovaných stránek.
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
-
AI v programování: Jak používat GitHub Copilot (část 2)
19. února 2024 -
Aktualizujete svoji .NET webovou aplikaci? Může se hodit app_offline.htm
10. července 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Globální výpadek IT systémů: Může za to jediná aktualizace
19. července 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024