Autor Zpráva
Marschmallow
Profil
Moderátor Davex: Toto téma bylo vytrženo z diskuse jak rozdělit div?


Trejpa:
Proč nedáváš názvy class v HTML do uvozovek?
Trejpa
Profil
Marschmallow:
Protože to v tomto případě není potřeba.
JaPaJP
Profil
Trejpa:
Proč to neni potřeba ty uvozovky a jinde jo? A proč nejsou ukončene <P> s </P>? Ja jsem si to tam projistotu dopsal .
Karel N.
Profil
[#8] JaPaJP html5 specifikace dovoluje vynechat některé tagy, vše má ale samozřejmě svá pravidla, viz dokumentace.

Pokud jde o ty uvozovky, opět doporučení od w3c poměrně jasně vyjmenovává za kterých okolností se mohou uvozovky vynechat:

...must not contain any literal space characters, any U+0022 QUOTATION MARK characters ("), U+0027 APOSTROPHE characters ('), "=" (U+003D) characters, "<" (U+003C) characters, ">" (U+003E) characters, or U+0060 GRAVE ACCENT characters (`), and must not be the empty string.


Každopádně doporučuji se držet zažitých věcí, tagy ukončovat a atributy uzavírat do uvozovek, jak vidíš, pravidla jsou pro to poměrně složitá a pro tebe nic lepšího nepřináší. Vyhneš se tím mnoha zbytečným a těžko laditelným chybám.

[#7] Trejpa také by bylo dobré uvést, že to platí pouze v některých případech a defacto pouze pro html5. Není vhodné začátečníky plést těmito vyjímkami a když už, tak to aspoň řádně zdůvodnit.
Trejpa
Profil
JaPaJP:
Je to ve všech specifikacích HTML 2 až HTML 5. Prakticky všechny běžně používané prohlížeče ji v těchto bodech správně dodržují.

Pokud hodnota vlastnosti obsahuje pouze písmena anglické abecedy a-z, A-Z, číslice, pomlčku, podtržítko, tečku a dvojtečku, tak se uvozovky nebo apostrofy psát nemusí. Jakmile potřebuješ jiné znaky, třeba mezeru, písmena s diakritikou či středník, je použití uvozovek povinné.

V jazyce HTML je mnoho značek nepovinných. Prohlížeče podle kontextu přesně poznají, kdy mají značky použít. Nepovinné značky jsou třeba <html>, </html>, <head>, </head>, <body>, </body>, </p>, </li>, </dt>, </dd>, </option>, </colgroup>, </tr>, </th>, </td>, <tbody>, </tbody>, </tfoot>, </thead>. Odteď je můžeš je s klidným srdcem vynechávat. Nebo nemusíš, máš právo volby.

Karel N.:
defacto pouze pro html5
Lžeš.
JaPaJP
Profil
Trejpa a Karel N.:
Diky za odpovědi.
Karel N.
Profil
[#10] Trejpa proč tak asertivně? Pravidla pro uvozovky a nepovinné tagy se mezi verzemi nepatrně liší a nevidím důvod tohle doporučovat, ba naopak zbytečně zanášíš možnost chyby.

Nelžu, podívej se na používání jednotlivých verzí html. Defacto tam je umístěno záměrně, v současné době nemá smysl se bavit o ničem jiným než html5 a xhtml, zbytek má zastoupení v jednotkách procent.
Davex
Profil
Karel N.:
v současné době nemá smysl se bavit o ničem jiným než html5 a xhtml, zbytek má zastoupení v jednotkách procent.
Prohlížeče nerozlišují verze HTML a XHTML prakticky nikdo nepoužívá.
Trejpa
Profil
Karel N.:
proč tak asertivně?
Omlouvám se, rozhodně nejde o osobní útok, ale jen o reakci na tvůj výrok, ve kterém jsi zřejmě omylem uvedl informaci nezakládající se na objektivně prokázaných skutečnostech. Dříve jsme tomu říkali lhaní. Vysvětlím: vynechávání nepovinných značek používám skoro patnáct let, tedy z doby, ve které učební texty vycházely ze specifikace HTML 3.2. A ty tady tvrdíš, že totéž platí pouze pro HTML 5.

I začátečníci mají právo se rozhodnout, zda budou zbytečné znaky stále dokola tupě opisovat, nebo se naučí používat vlastní hlavu.

Pravidla pro uvozovky se mezi verzemi nepatrně liší
Ano. Ve smyslu: dřív to podle specifikace nešlo, v prohlížečích to však šlo. Poslední specifikace v tomto jen přijala současný stav prohlížečů.

Pravidla pro nepovinné tagy se mezi verzemi nepatrně liší
Ano. Vymysleli si do specifikace spoustu nových elementů a některé z nich mají nepovinné značky. Stará pravidla však specifikace nezměnila.

nevidím důvod tohle doporučovat
Díky shodě prohlížečů a specifikace si to nemyslím.

naopak zbytečně zanášíš možnost chyby.
Kód bez zbytečného balastu mi přijde přehlednější, tedy i méně náchylný na chyby.

nemá smysl se bavit o ničem jiným než html5 a xhtml
Prohlížeče žádné verze HTML nerozlišují. Stránky v XHTML prakticky nikdy neexistovaly, téměř vždy jde o rozbité HTML se špatným doctype (jako XHTML).
Tomáš123
Profil
Trejpa:
I začátečníci mají právo se rozhodnout, zda budou zbytečné znaky stále dokola tupě opisovat, nebo se naučí používat vlastní hlavu.
Takto by som to nenazýval. Z môjho pohľadu je kód s úvodzovkami prehľadnejší, v editore lepšie vyznačený a v žiadnom prípade nesúhlasím s tým, že každý, kto „opisuje“ úvodzovky, nepoužíva vlastnú hlavu. Na to o akú tému ide si príliš silno potiahol...

Díky shodě prohlížečů a specifikace si to nemyslím.
Keď to tak sebaisto prehlasuješ, na chvíľu som uveril, že si to vyskúšal všade. Hneď som si však uvedomil, že je to veľmi nepravdepodobné a nikdy si nemôžeš byť dokonale istý, z čoho vyplýva, že by si nemal svoje „zlozvyky“ vnucovať i ostatným. Z toho, že ty pätnásť rokov nepíšeš úvodzovky nevyplýva pre ostatných absolútne nič.

Kód bez zbytečného balastu mi přijde přehlednější, tedy i méně náchylný na chyby.
Čo ak tam raz omylom pridáš medzeru?
Trejpa
Profil
Tomáš123:
Z môjho pohľadu je kód s úvodzovkami prehľadnejší
Gratuluji, máš v tom systém.

v editore lepšie vyznačený
Používáš asi špatný editor.

každý, kto ‚opisuje‘ úvodzovky, nepoužíva vlastnú hlavu
Nic takového jsem nenapsal. Přečti si to znovu.

si príliš silno potiahol...
Tomu nerozumím.

by si nemal svoje ‚zlozvyky‘ vnucovať i ostatným
Vybíráš si ze specifikace jen část, co ti vyhovuje (kterou ovládáš), a zbytek je zlozvyk? Zajímavé. Nikomu nic nevnucuji, nabízím další funkční možnost. Jen ať si každý vybere, co vyhovuje zrovna jemu.

Čo ak tam raz omylom pridáš medzeru?
Myslíš do hodnoty vlastnosti? Nikdy jsem ji tam nepřidal, aniž bych s ní nedal hodnotu do uvozovek - dělám to naprosto automaticky. Kdybych tuto chybu v budoucnu čistě náhodou učinil, poznal bych to buď podle barvy v editoru nebo na upravované stránce.
Tomáš123
Profil
Trejpa:
Používáš asi špatný editor.
Práve vtedy, ak by som používal zlý editor by označenie úvodzovkami splnilo svoj účel lepšie, dáš mi za pravdu? (môjho editora sa to samozrejme netýka)

Nic takového jsem nenapsal. Přečti si to znovu.
Nepriamo na to poukazuješ: „I začátečníci mají právo se rozhodnout, zda budou zbytečné znaky stále dokola tupě opisovat, nebo se naučí používat vlastní hlavu.“. Nepriamo vyzývaš užívateľov, aby tie úvodzovky nepísali, ak nechcú, aby pred tebou vyzerali ako tupí.

Tomu nerozumím.
Vyššie som popísal, ako som tvoju vetu pochopil. Tomu som prispôsobil aj svoju reakciu.

Nikomu nic nevnucuji
Začiatok príspevku...

Nikdy jsem ji tam nepřidal, aniž bych s ní nedal hodnotu do uvozovek
Si veľmi šikovný :-)

Ešte chvíľu spolu podiskutujeme a zavolám moderátora, aby to trošku prečistil :-).
_es
Profil
Karel N.:
Není vhodné začátečníky plést těmito vyjímkami a když už, tak to aspoň řádně zdůvodnit.
To nie je „pletenie výnimkami“, ale základné veci, aj pre začiatočníka. Napríklad, že v prípade <P><DIV></P> odsek (element P) neukončuje </P>. Vysvetlené napríkad v Jak funguje HTML.
Trejpa
Profil
Tomáš123:
Spatřuješ výhodu uvozovek kolem hodnot vlastností v tom, že se správně obarví i v neschopném editoru?

Nepriamo vyzývaš užívateľov, aby tie úvodzovky nepísali, ak nechcú, aby pred tebou vyzerali ako tupí.
Vyzývám zejména začátečníky, aby používali především svoji hlavu. Pokud jsi moji větu pochopil jinak, je to tvůj problém.
Chamurappi
Profil
Lidé píšou uvozovky kolem atributů ze dvou důvodů: buď se jim to tak víc líbí, nebo nevědí, že (a kdy) je můžou spolehlivě vynechat. První důvod je čistě subjektivní a druhý mi nepřipadá jako dostatečný k zamlčování této možnosti. Sám píšu uvozovky prakticky vždy, protože se mi to tak víc líbí, ale neděsí mě, když se vynechají, a jsem rád, když to neděsí ani ostatní. Této vlastnosti se HTML nikdy nezbaví, tak není důvod v zájmu kdovíjakého pokroku předstírat, že neexistuje.


Reaguji na Karla N.:
Pravidla pro uvozovky a nepovinné tagy se mezi verzemi nepatrně liší
Formálně se liší jen mezi HTML 5 (které má vlastní syntaxi) a všemi staršími verzemi HTML (které všechny stojí na stejném SGML).
Ve starších verzích HTML je možné u některých atributů vynechávat i rovnítko a název atributu, ale podpora v prohlížečích byla odjakživa jen polovičatá — vždy fungovalo vynechání <input checked=checked>, ale nikdy ne <form method=post>. Také se nikdy neujalo psaní <input "checked">, tam vynechával uvozovky každý.

naopak zbytečně zanášíš možnost chyby
Ani moc ne. Tohle mi zní jako legenda z dob propagace XHTML. Viděl jsem už spoustu rozbitých stránek, ale nikdy nebyla příčina v tom, že někdo vynechal značku a špatně odhadl, kde element skončí, nebo že by nenapsal uvozovky kolem vlastnoručně vyplněné hodnoty atributu.

v současné době nemá smysl se bavit o ničem jiným než html5 a xhtml
Pokud uvozovky vynechá v XHTML, stránka se vůbec nezobrazí. Zjednodušeně řečeno v tomto případě platí: když to funguje, je to OK.


Reaguji na Trejpu:
Pokud jsi moji větu pochopil jinak, je to tvůj problém.
Ono to tupé opisování zní trošku urážlivě. Ve většině případů je to spíš opatrné opisování :-)
Tomáš123
Profil
Trejpa:
Spatřuješ výhodu uvozovek kolem hodnot vlastností v tom, že se správně obarví i v neschopném editoru?
Myslel som to skôr tak, že aj keď mám obyčajný poznámkový blok, vďaka úvodzovkám ľahšie rozpoznám, kde hodnota začína a kde končí.

Chamurappi:
Pekné zhrnutie! :-)
_es
Profil
Chamurappi:
vždy fungovalo vynechání <input checked=checked>
Ja som myslel, že ide o <input checked=checked>, kde zápis atribútu, no vynechanie jeho hodnoty (a rovnítka), znamená akési „zapnutie“ niečoho pre element a úplné vynechanie atribútu znamená, že to je vo „vypnutom“ stave. Podľa mňa je tvoje vysvetlenie nesprávne, je to vidno aj z toho, že <input type=checkbox "checked"> nefunguje, no <input type=checkbox checked> funguje.
DJ Miky
Profil
_es, Chamurappi:
Ze specifikace HTML 4.01:

„In HTML, boolean attributes may appear in minimized form -- the attribute's value appears alone in the element's start tag. Thus, selected may be set by writing:

<OPTION selected>


Firefox třeba chápe <option selected> jako <option selected="">, i když by to snad mělo být <option selected="selected"> (funguje samozřejmě obojí). Zajímal by mě však Chamurappiho příklad s <form post> a <input "checked"> – ve specifikaci jsem takové případy nenašel, výše citovaný odstavec mluví o vynechávání pouze u boolean atributů, což method není.
Chamurappi
Profil
Reaguji na _es:
je to vidno aj z toho, že <input type=checkbox "checked"> nefunguje
Minimálně v Mozille kdysi podporovaný byl. Nejstarší tady teď mám Firefox 3.6 a tam ještě uvozovky nevadí. Podporu nejspíš odebrali, protože podle HTML 5 už platí jiná pravidla, odpovídající tomu, čemu drtivá většina kodérů odjakživa věřila.


Reaguji na DJ Mikyho:
Autoři HTML 4 bohužel nikdy syntaxi HTML moc nerozuměli. Minimalizace se netýká jen boolean atributů, ale všech atributů, jejichž druh hodnoty je daný výčtem.

Mému výkladu nasvědčuje i validátor (nejen můj), který používá skutečný SGML parser a <input checkbox checked> mu nevadí. Starší verze W3C validátoru uměla ukázat i parse tree, z něhož je zřejmé, že nejde o chybu.

Doporučení HTML 3.2 se odvolává na nikdy nedokončenou specifikaci A Lexical Analyzer for HTML and Basic SGML, která vztah SGML a HTML zkoušela vyjasnit a kde je výslovně uvedeno:
If the ATTLIST declaration specifies an enumerated list of names, and the value specification is one of those names, the attribute name and "=" may be omitted.
V HTML 4 je toto povídání mezi „Informative references“ odkázáno také, ale nikde jinde o něm zmínka není, a tebou odkázaná třetí kapitola „On SGML and HTML“ ho nahrazuje poněkud nedostatečně, často i chybně.

Mezi rozšířenými prohlížeči se tento pikantní teoretický detail nikdy neujal. Je to jen taková kuriozita, nyní i s přívlastkem „historická“.
_es
Profil
Chamurappi:
Mému výkladu nasvědčuje i validátor (nejen můj), který používá skutečný SGML parser a <input checkbox checked> mu nevadí.
Ale <input checkbox "checked"> mu „vadí“ - aj pre HTML 3.2 aj pre HTML 4.01 Transitional. Je tvrdenie, že si má prehliadač „domýšľať“ názov hocijakého atribútu (nie jeho hodnotu) z hocijakej hodnoty v úvodzovkách podopreté aspoň nejakou špecifikáciou HTML? Ak Firefox 3.6 vraj spracoval <input type=checkbox "checked"> rovnako ako <input type=checkbox checked>, tak z toho ešte nevyplýva, že si domyslel z hodnoty "checked", že ide o atribút checked, ale si mohol aj „odmyslieť“ nadbytočné úvodzovky - že ide o nepodarený zápis atribútu checked bez hodnoty.
Chamurappi
Profil
Reaguji na _es:
Ale <input checkbox "checked"> mu ‚vadí‘ - aj pre HTML 3.2 aj pre HTML 4.01 Transitional.
Mno jo, máš pravdu. Nedaří se mi dohledat nic konkrétního, co by potvrzovalo moji domněnku. V tomhle jsem se nejspíš seknul a benevolence starého Firefoxu bude mít jinou motivaci.

Našel jsem teď ještě stránku z knížky „SGML and HTML Explained“. Ve všech zdrojích, které mluví o vynechání názvu, se píše cosi ve smyslu „můžete vynechat název s rovnítkem“, ale aby jednoznačně napsali i „musíte vynechat i uvozovky“, to ne. Zřejmě to vyplývá z pravidel gramatiky zmíněných jinde, fakt je, že ta uvozovka tam působí poněkud nepatřičně.
Druhá možnost je, že je chyba v parseru OpenSP, který využívají validátory, ale na to bych nesázel :-)
_es
Profil
Chamurappi:
Okrem toho, <input checkbox> aj <div center></div> sú podľa validátora v poriadku, pre HTML5, HTML 4.01, aj HTML 3.2, no nefungujú v prehliadačoch - input je východzí textový a zarovanie textu nie je na stred. Nefunguje to ani v historickom Netscape Communicator 4.73, ani v Netscape Navigator 9.0.
Chamurappi
Profil
Reaguji na _es:
sú podľa validátora v poriadku, pre HTML5
Velmi podezřelé. Jak to tak zkoumám, spíš mám rozbitý validátor, bez hlášky prochází úplně všechno :-)
Zřejmě na validator.nu něco změnili. Konkrétně koukám, že 21. listopadu odebrali podporu pro výstup out=text, z něhož jsem získával hlášky. Škoda. Během Vánoc to zkusím opravit, prozatím jsem celou pětkovou validační větev vyřadil.
Moderátor Chamurappi: Související: Český validátor na Webylonu nefunguje

Každopádně <input checkbox> v HTML 5 validní určitě není. Atributy už mají docela neprůstřelnou definici, bez vazby na záludnosti SGML.
_es
Profil
Chamurappi:
Velmi podezřelé. Jak to tak zkoumám, spíš mám rozbitý validátor
Na oficiálnom validátore to neprejde ako HTML5, no prejde ako HTML 4.01 aj HTML 3.2. Je však nejaký prehliadač, na ktorom to aj funguje?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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