Autor Zpráva
Lukáš66666
Profil
Zdravím, všude se dočítám jak je důležité uvádět v html tagy head a body a mezi ně umístit obsah, tak ja má být, ale když jsem si zobrazil html kód této diskuse, tak tagy head a body vůbec nevidím. To ničemu nevadí když se to v kódu nezapíše?

Moderátor Petr ZZZ: Původní titulek: „HTML kód této diskuse“*
Taurus
Profil
Kde všude se to dočítáš? Spousta věcí je nepovinných, prohlížeč si spoustu věcí domyslí. Podobná témata se tu řeší často.
juriad
Profil
Ne. Spousta koncových, ale i počátečních značek je nepovinných.

Přečti si Důvody volitelnosti ukončovací značky odstavce
a odtamtud odkázané atd.havrlant.net/jak-funguje-html
Lukáš66666
Profil
No prakticky všude se dočtete že zakladem html dokumenty je toto.

<html>
  <head>
    obsah 
  </head>
  <body>
    text stránky
  </body>
</html>

Ale ještě nikdy jsem se nesetkal s tím že by stránka tyto tagy neměla.
juriad
Profil
Lukáš66666:
A přitom minimální stránka má být takto (title je povinný):
<!doctype html>
<title>O čem stránka je</title>
Text stránky
Lukáš66666
Profil
juriad:
Ok tak dík za objasnění. Já celou dobu myslel že to třeba nějak stránce uškodí když to tam nebude.
Vím akorát že když něco zkouším tak mi stačí jen meta tag kde uvedu content-type a jde to na takový menší testování použít, ale netušil jsem, že to tam být nemusí.
juriad
Profil
Stačí dokonce kratší:
<meta charset="zvolené-kódování">
Není povinné určovat kódování, často jej už obsahuje HTTP hlavička Content-Type. Je to však dobrou praxí.

S dovolením přesunu do kategorie HTML, neřešímu tu poblematiku zdejší diskuse, ta slouží jen jako příklad.
Lukáš66666
Profil
juriad:
Ok v pohodě ja nevěděl kam přesně to umístit a díky za info.
anonymníí
Profil *
Lukáš66666:
No prakticky všude se dočtete že zakladem html dokumenty je toto.
Použij kód uvedený v #5, zobraz si tu stránku a srkze vývojářské nástroje se podívej na to, co rendruje prohlížeč, s čím pracuje a co zobrazuje.

HTML, HEAD i BODY tam budou. Jsou to povinné elementy, avšak s nepovinnými značkami - počáteční i koncovou. Stejně tak každá tabulka obsahuje tbody, které je povinné, ale málokdo jej uvádí (málokdo jej i zná), protože obě značky jsou volitelné.

Opět, malý příklad.

<table>
    <tr>
        <td>bunka A1
        <td>bunka B1
    <tr>
        <td>bunka A2
        <td>bunka B2

Podívej se, s jakým DOMem pracuje prohlížeč. Všechno bude uzavřené, přibude tbody. Koncové značky jednotlivých zde uvedených elementů jsou volitelné.
Chamurappi
Profil
Reaguji na Lukáše66666:
prakticky všude se dočtete že zakladem html dokumenty je toto
Autoři HTML učebnic mívají buď málo odvahy, nebo málo znalostí na to, aby kázali něco jiného.
Trojice elementů <html>, <head> a <body> měla volitelné počáteční i ukončovací značky odjakživa i oficiálně podle specifikací (viz třeba popis v HTML 5). Patrně hlavní důvodem, proč se tato struktura vůbec kdy uchytila, byly prezentační atributy na <body> (bgcolor apod.), kterými šlo měnit vzhled stránky. Ale ty už dnes nikdo nepoužívá. Krom toho část kodérů vždy upřednostňovala složitější a upovídanější kódy.

Podle mě by bylo možná i lepší o těch značkách neučit. Začátečník si tím utváří zkreslené představy o tom, jak HTML funguje, přisuzuje speciální význam něčemu, co ho ve skutečnosti nemá. Zmínil bych jen, že ty elementy existují a že jdou stylovat, ale psát je do kódu není moc důvod… stejně jako u toho <tbody>.
V popisu syntaxe HTML 5 je také jasně napsáno, že pokud se elementy, které patří do <head>, dají do <body>, mají fungovat stejně jako v <head>, tudíž je to rozdělení na hlavičku a tělíčko opravdu jen formalita.
Tomáš123
Profil
Lukáš66666:
No prakticky všude se dočtete že zakladem html dokumenty je toto.
Áno. Každý začiatočnícky zdroj to takto uvádza, lebo je to jednoduchšie.* Asi päťkrát som sa zamyslel nad tým, ako by som niekomu, úplne nechápavému, vysvetlil základy syntaxe HTML. Učebnice sú písané tak, aby ich väčšina pochopila. Už rozdelenie na párové a nepárové značky môže vyvolať zmätok. Predstav si, že by ti k tomu niekto pribalil informácie o povinných prvkoch s (voliteľne (polovične)) nepovinnými značkami, nepovinných prvkoch s povinnými značkami, či nepovinných hodnotách atribútov zrejme iba povinných značiek. Ešte pridať nejaké detaily o nepovinných úvodzovkách a implicitnom správaní niektorých prvkov a máme poistené, že tak skoro potenciálneho kódera učiac sa neuvidíme. Keby to vydržal, tak nejaké anomálie.

Chamurappi:
Teoreticky súhlasím. Prekáža mi, že sa HTML vyučuje tak hromadne, hlavne kvôli tomu, že je všeobecne považovaný za najjednoduchší jazyk a programovať musí predsa v dnešnej dobe vedieť každý. Následkom je napríklad to, že kadekto ťa môže poučovať o vhodnosti používania HTML5 značiek. Len neviem, či by som sa do HTML ponoril keby som vedel, že nie je také jednoduché a teda či sa potenciálne neodpisujem. Hm, ak by som to nezvládol, nebola by ma škoda :-).

*Prekutrával som Google kľúčovými slovami, aby som našiel kde si písal to, čo v [#10] a mohol odkázať. Ďakujem, že už nemusím. :-)
Lonanek
Profil
Tomáš123:
programovať musí predsa v dnešnej dobe vedieť každý
Docela mne může nadzvednout, když "profesor" vyučující IT na střední škole dává žákům příklad:
"Do adresního řádku v prohlížeči napíšeme adresu stránky". No jako ukázku to samozřejmě mastí do search pole na seznamu.
Fisir
Profil
Reaguji na Tomáše123:
sa HTML vyučuje tak hromadne, hlavne kvôli tomu, že je všeobecne považovaný za najjednoduchší jazyk a programovať musí predsa v dnešnej dobe vedieť každý
Jenže HTML není programovací jazyk, ale značkovací. V HTML nestavíš dům, ale podtrháváš nadpisy.
anonymníí
Profil *
Fisir:
S první větou ve tvé výpovědi souhlasím, ta druhá je nějaká divná.

V HTML nestavíš dům...
Prvně, v HTML jde postavit kompletní dům, jiné technologie nejsou třeba. Jestli jsi myslel, že se dům staví za pomoci např. PHP, tak to je špatný příklad. Staví se rychleji, dá se na něj snáze přistavět, ale základ domu bude vždy HTML.

..., ale podtrháváš nadpisy
Nadpisy se podtrhávají v CSS, HTML k tomu žádné prostředky nemá.
Str4wberry
Profil
Minimální rozumná HTML kostra je podle mě následující:
<!doctype html>
<meta charset="utf-8">
<title>Titulek stránky</title>
Obsah stránky.


Reakce na anonymníího:
Stejně tak každá tabulka obsahuje tbody
Nemusí. Jen v případě, že se v <table> nachází nějaký obsah mimo <thead>/<tfoot>: Odkaz
Tomáš123
Profil
Fisir, anonymníí:
Všimnite si tej kurzívy slova „programovať“ v [#11].

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: