« 1 2 »
Autor Zpráva
Tayger
Profil *
Moderátor Str4wberry: Navazuje na Jaké jednotky pro stylování básničky?
Miloš:
<div class="basnicka">
<p>Přemýšlíte, jak mi říci, <br>
že je někde chyba?<br>
<p>Nebo jen tak napsat pár vět?<br>
Tu na stránce třeba:
</div>

Způsob mi nevadí, ale když už se jí snažíš pomoci, tak ukončuj odstavce párovým tagem. Vím, že to prohlížeče překoušou, ale když už tedy radit, tak ať je tam závan W3C.
Str4wberry
Profil
Prohlížeče to překousnou zcela v souladu s pravidly HTML.
Tayger
Profil *
Str4wberry:
To jsem napsal, ale přesto se u párových tagů preferuje ukončovací tag, pokud je mi známo, tak to se zatím nezměnilo a pro ty co kódují v xhtml, je to nutnost. ;-)
Str4wberry
Profil
Opravdu nevím, jak tě napadlo, že se preferuje psaní ukončovacích značek. Záleží na každém, zda chce do kódu psát tyto zbytečné značky či ne. A XHTML bych do toho moc netahal, protože se prakticky nepoužívalo, nepoužívá a kdo ví jestli vůbec se někdy používat bude.
Chamurappi
Profil
Reaguji na Taygera:
přesto se u párových tagů preferuje ukončovací tag
Ukončovací tag je jen značka, nemůže nic preferovat :-)
Nepovinné značky jsou v některých situacích zbytečné, proto jsou nepovinné. Žádný kvalitativní přínos nepředstavují.

pro ty co kódují v xhtml, je to nutnost
Ti by si stejně ještě museli nastrkat lomítka do <br>, jinak by jim to žádný prohlížeč nezobrazil.
Tayger
Profil *
Str4wberry:
A XHTML bych do toho moc netahal, protože se prakticky nepoužívalo, nepoužívá a kdo ví jestli vůbec se někdy používat bude.
To nemyslíš vážně, existuje tolik stránek s doctype xhtml, by mě zajímalo, kde se tedy nepoužívá, spousta reklamních firem dělá stránky v xhtml.


Chamurappi:
Ti by si stejně ještě museli nastrkat lomítka do <br>, jinak by jim to žádný prohlížeč nezobrazil.
jj a také img, input a hr, je to takové prokletí, každopádně stále prosazuji, že když to má svůj ukončovací tag, tak se má použít, když už jsi mi to preferování rozmluvil, tak to minimálně zlepšuje čitelnost kódu a z vlastní zkušenosti se mi to také lépe styluje, přeci jen použití div, span, h1,...,h3, či li je bez ukončovacího tagu hodně náchylné na nepředvídatelné chování při stylování.
Miloš
Profil
Jen koukám, že jsem tam omylem na 15. řádku zapomněl <br>, který tam nepatří (ale očividně ničemu nevadí).

Tayger:
ať je tam závan W3C
Co to je závan W3C? Nepleteš si to, doufám, se závanem WC? Já po sobě splachuji.
Tayger
Profil *
Ehm a co když člověk, co nepoužívá ukončovací tagy bude chtít vnořit jeden odstavec do druhého?
Str4wberry
Profil
A k čemu by taková konstrukce měla sloužit?
Miloš
Profil
Tayger:
To v HTML stejně nejde. Jakýkoli blok „vypíše neviditelné </p>“:
<p>Tady začíná odstavec.
<p>Tady začíná druhý odstavec. Tento odstavec provedl ukončení prvního odstavce.
</p>Nepovinný konec druhého odstavce
</p> Ukončení neexistujícího odstavce
Tayger
Profil *
Str4wberry:
dejme tomu ke globálnímu stylování všech odstavců a jiný styl pro jeden odstavec uvnitř textu a nebo zase připíšeme class? když můžeme použít p p?
Miloš
Profil
Tayger:
ale většinu těch stránek prohlížeče považují za HTML. Máš-li chuť, začti se do http://diskuse.jakpsatweb.cz/?action=vthread&forum=30&topic=11358

Ale odstavec v odstavci je nesmysl – jak by to mělo vypadat? Viděl jsi někde kdnihu, kde by byl v odstavci odstavec? Jak to vypadalo?
Tayger
Profil *
Miloš:
Proč by to měl být nesmysl? ul li ul li je také nesmysl? div div div je také nesmysl? Všechno jsou to blokové prvky a bez jejich vnořování by se web dělal dost blbě, nejspíše hlavně přes tabulky.

a také ve stylech se pak lehce najde prvek a jquery je na to pak teprve parádně v hledání prvků. Není potřeba připisovat class či id.
DoubleThink
Profil *
Tayger:
Máš velmi rozsáhlé mezery ve znalostech (X)HTML.

The P element represents a paragraph. It cannot contain block-level elements (including P itself).
Jakýkoliv blokový element ukončuje odstavec. Konstrukce p p {} v CSS nemůže nastat.
Tayger
Profil *
DoubleThink:
hm na tom něco asi je :-), ale to že konstrukci p p v praxi nepoužívám, tak to neznamená, že mám rozsáhlé mezery v (X)html :-) Jen se snažím tady vysvětlit, proč používat ukončovací tagy. například div bez ukončovacího tagu je nepoužitelný.
Miloš
Profil
Ale tak si to zkus, když mi nevěříš.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style type="text/css">
body {color: yellow;}
	p {color: black;}
	p#prvni {color: red;}
	p p {color: green;}
</style>

<title>Odstavce</title>

<p id="prvni">První odstavec je červený
<p>Druhý odstavec. Pokud by byl vnořen v prvním odstavci, byl by zelený (green), ale protože začátek tohoto odstavce automaticky a povinně provedl ukončení tohoto odstavce, jaký bude? Černý, jako obyčejný odstavec.
</p> Druhý odstavec byl ukončen. Kdybych byl v prvním odstavci, byl by text červený, ale protože nejsem v prvním, nýbrž v žádném odstavci, text bude žlutý.
</p> No a toto byla úplně zbytečná značka, která „ukončila“ neexistující odstavec.
Tayger
Profil *
Miloš:
už nic zkoušet nemusím, bylo mi to vysvětleno v předchozím příspěvku.
Miloš
Profil
Tayger:
Ano, div je „bez ukončovacího tagu je nepoužitelný“, protoýe je jeho ukončovací značka povinná.
Oproti tomu odstavec má tuto značku nepovinnou a je povinností prohlížeče si ji domyslet.

Tohle najdeš například v http://atd.havrlant.net/jak-funguje-html
Chamurappi
Profil
Reaguji na Taygera:
existuje tolik stránek s doctype xhtml
<!doctype> neurčuje jazyk. W3C řeklo tvůrcům prohlížečů, že z něj nemají vyvozovat, zda jde o HTML, nebo o XHTML.

spousta reklamních firem dělá stránky v xhtml
Většina pseudo-XHTML webů porušuje syntaxi HTML, když dává do značek prázdných elementů lomítko. To je ten závan W3C?

přeci jen použití div, span, h1,...,h3, či li je bez ukončovacího tagu hodně náchylné na nepředvídatelné chování při stylování
Vyjmenované elementy nemají nepovinnou ukončovací značku.
Mimochodem, elementy <html>, <head>, <body> a <tbody> mají nepovinnou nejen ukončovací, ale i počáteční značku. Viz odkaz v příspěvku [#2].

co když člověk, co nepoužívá ukončovací tagy bude chtít vnořit jeden odstavec do druhého?
V HTML to nejde. Nejen, že to je nesmysl, nejen, že se to dle W3C nesmí — ono to fakt nejde. Nejde jako nefunguje. Zkus si to.

a také ve stylech se pak lehce najde prvek a jquery je na to pak teprve parádně v hledání prvků
Styly i JavaScript pracují s DOMem, způsob zápisu HTML je jim zcela ukradený.

například div bez ukončovacího tagu je nepoužitelný
Neplatí pro každý <div>. Vynechání ukončovací značky je sice u něj chyba (na rozdíl od odstavců), ale prakticky vzato musí mít každý element někde svůj konec.
Miloš
Profil
Tayger:
tak to minimálně zlepšuje čitelnost kódu a z vlastní zkušenosti se mi to také lépe styluje, přeci jen použití div, span, h1,...,h3, či li je bez ukončovacího tagu hodně náchylné na nepředvídatelné chování při stylování.
Když ti to připadá přehlednější, piš tak. Nikdo ti v tom nebrání. Nenuť ale ostatní , aby dodržovali tvoje interní pravidla. Mně připadá stejně přehledné, když odstavce a podobně neuzavírám a nijak mi to nepřekáží ve stylování.
Něco jiného by bylo, kdybych na kódu s někým spolupracoval – pak by bylo potřeba se domluvit na jednotném zápisu a ten dodržovat, ale pokud píšu sám, je zcela na mně, co považuji za (ne)přehledné.
panther
Profil
Tayger:
[#15] „to neznamená, že mám rozsáhlé mezery v (X)html
tohle tvrzení dost odporuje tomu, co píšeš výše (na něco ti bylo odpovězeno, ale nedá mi shrnout tvoje výroky :-)):

- [#6] „To nemyslíš vážně, existuje tolik stránek s doctype xhtml, by mě zajímalo, kde se tedy nepoužívá
- [#11] „[...] když můžeme použít p p?
- [#14] „ul li ul li je také nesmysl? div div div je také nesmysl?
- [#14] „bez vnořování by se web dělal dost blbě, nejspíše hlavně přes tabulky.
Když už jsi nakousl ty tabulky. Možná tě to překvapí, ale tabulka má taky spoustu nepovinných tagů (nejen ukončovacích, ale i počátečních).

To, že se ti stránka nemusí rozpadat, nutně neznamená, že nemáš mezery v HTML. Dost jsem byl překvapen, když jsem viděl po ránu tohle noční téma, s chutí jsem jej pročetl. A musím přiznat, že jsem jen kroutil hlavou. Myslel jsem, že mýty ohledně záhadného „X“ jsou vyřešeny, že kodéři znají pravidla HTML. A ono to tak ještě asi není.
Miloš
Profil
panther:
Myslel jsem, že mýty ohledně záhadného ‚X‘ jsou vyřešeny, že kodéři znají pravidla HTML. A ono to tak ještě asi není.
A asi ještě dlouho nebude. I když už jsem naštěstí dlouho neslyšel mythos, že „HTML dovoluje prasárny“ – viz výborný http://latrine.dgx.cz/konecne-pravda-o-xhtml-a-html
Joker
Profil
Tayger:
Vím, že to prohlížeče překoušou, ale když už tedy radit, tak ať je tam závan W3C
Zrovna odstavec podle W3C nemusí mít ukončovací značku, takže v HTML je <p>text <p>text naprosto správně.

Já sice taky preferuji používání ukončovacích značek a podle mého názoru by bylo lepší, kdyby si prohlížeč nedoplňoval značky které v zápisu nejsou a prostě zpracoval co se mu dá, přesto vynechávání těch značek je úplně stejně správně a v souladu s normou.
Takže těžko ostatní diskutující kritizovat za to, že mají odlišný (ale taky správný) styl psaní kódu.

Ehm a co když člověk, co nepoužívá ukončovací tagy bude chtít vnořit jeden odstavec do druhého?
W3C proskočí stropem :-)
Ne, to v HTML vůbec nejde udělat, viz Chamurappi. Další odstavec ukončí ten předchozí bez ohledu na existenci ukončovací značky.

Všechno jsou to blokové prvky
Jenže odstavec není (z pohledu DTD) blokový prvek.

(edit: viz níže)
Miloš
Profil
Joker:
Jenže odstavec není (z pohledu DTD) blokový prvek.
DTD jsem nikdy nestudoval a elementy dělím pro jednoduchost na řádkové a blokové, což pro základní orientaci bohatě postačuje.
Jaký je, prosím tě, tedy odstavec prvek, když to není blok?
Miloš
Profil
Ještě mě překvapila jedna věc – ve skutečném XHTML vnoření odstavců funguje – přinejmenším se to dá stylovat:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
/* <![CDATA[ */
body {color: yellow;}
	p {color: black;}
	p#prvni {color: red;}
	p p {color: green;}
/* ]]> */
</style>
<title>Odstavce</title>
</head>

<body>
<p id="prvni">První odstavec je červený
<p>Druhý odstavec. V XHTML se chová jako vnořený a lze jej tak stylovat, proto je zelený.
</p> Druhý odstavec byl ukončen. V XHTML jsem opět v prvním odstavci a text je červený
</p> No a teprve po ukončení prvního odstavce jsem mimo a text je konečně žlutý.
</body>
</html>


Proč to není validní? Respektive proč to funguje, když to není validní?
Joker
Profil
Miloš:
Jaký je, prosím tě, tedy odstavec prvek, když to není blok?
Překvapivě řádkový (%inline)

edit: Jsem napsal hloupost. Odstavec jako takový patří v DTD do skupiny blokových prvků (%block), jeho obsah může být jenom řádkový (%inline).
havs
Profil
Miloš:
elementy dělím pro jednoduchost na řádkové a blokové

...ale někdy neškodí nakouknout na w3c.org:
The P element represents a paragraph. It cannot contain block-level elements (including P itself).
http://www.w3.org/TR/html401/struct/text.html#edef-P
Moderátor Str4wberry: Kliknutím na jméno přispívajícího se ti samo vloží do pole pro zprávu.
Tayger
Profil *
Joker:
Hehe, já bych ho spíše přirovna ke konstrukci inline block, protože jisté blokové prvky určitě nese.


panther:
jn, už jsem prostě takový, dokud nedostanu rozumné vyvrácení mého omylu, tak se budu být v prsa, že je to tak jak to znám já. :-D
Joker
Profil
Tayger:
Změnil jsem ten původní příspěvek, napsal jsem to špatně. Obsah odstavce může být jenom řádkový (narozdíl třeba od <div> a stejně jako třeba <span>), ale odstavec samotný patří mezi blokové prvky.
Omlouvám se za mystifikaci.
Bubák
Profil
Tayger:
Hehe, já bych ho* spíše přirovna ke konstrukci inline block, protože jisté blokové prvky určitě nese.
* odstavec
Předpoklídám, že vysvětlení, nebo příklad, proč odstavec přirovnáváš k inline-block, i když je to "čistokrevný" block, nemáš.

už jsem prostě takový, dokud nedostanu rozumné vyvrácení mého omylu, tak se budu být v prsa, že je to tak jak to znám já.
Přehledná tabulka od W3C by nestačila? www.w3.org/TR/REC-html40/index/elements.html

Pro fajnšmekdy tak je DTD, třebas:
www.w3.org/TR/REC-html40/strict.dtd
www.w3.org/TR/REC-html40/loose.dtd

Občas dávám k dobru tuhle "legrácku" pro IE7 a starší plus všechny IE ve quirku:
<p>Hujer</p>
<hr>
<p>švestičky</p>
<hr>
<p>hruštičky
<hr>
<p>ze zahrádky
<hr>

Vodorovnou čáru jsem v ukázce dal jen pro jednoduchost, stejné chování se ve zmíněných případech projeví, vždy, když je za "neukovčeným" odstavcem blok, ale protože platí pravidlo o slučování marginů, není to vždy vidět.
Zobrazení se dá lehce srovnat v CSS deklarací dolního marginu odstavce.
« 1 2 »

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0