Autor Zpráva
Thommas
Profil
Zdravim...
Mám na stránce klasický odstavec textu a v něm seznal ul. Ten je, tuším blokový (?). Na validátoru mi to hází
chybku.
Jde to nějak vyřešit, abych nemusel ukončovat p?
Díky...
Plaváček
Profil
Thommas

Seznam je seznam a odstavec je odstavec. Jaký důvod máš dávat do odstavce seznam?
Chamurappi
Profil
Reaguji na Thommase:
Jestli používáš HTML (což zjevně ano), tak se ti <p> stejně sám ukončí před začátkem <ul>. Můžeš si to ověřit -- obarvi text v odstavci a seznam se ti neobarví. Stejně tak selektor „p ul“ nic netrefí.
V XHTML jde dát do odstavce prakticky jakýkoliv element a fungovat to bude, nehledě na validitu.
Plaváček
Profil
Chamurappi

Fungovat to bude a dávám Chamurappimu za pravdu. Z technického a validačního hlediska uřčitě, protože lepší Validátor v Čechách nenajdeš.

Ptám se ale znovu. Jaký VÝZNAM má seznam uvnitř odstavce? Je to sémantická kravina a ani Microsoft Word nic takového nedovolí. Tak proč to proboha děláš?
Thommas
Profil
Mě nenapadlo, že to je taková blbost. Prostě mám text, kterej dělí sport do několika skupin a ty jsou vypsaný v tom seznamu. Prostě "lablabla to se dělí na SEZNAM a pokračuju blablalba". Jako funguje to, to jo, ale mě jde jen o tu validitu (teda ne jen, ale v tomhle případě)
Thommas
Profil
Teda, teď jsi mě fakt rozhodil :D
Mě uniká, proč je to blbost? Btw. Kdyžtak si tam zobraz zdroj. kód aby jsi pochopil, co se rýsuje v mé pohnuté mysli ;)
Plaváček
Profil
Thommas

Zobrazil jsem si, kouknul jsem a pořád nechápu, co seznam Kategorií dělá v odstavci. Prostě tam nepatří a nemá důvod aby tam byl. Psal jsi někdy slohovou práci? Co je nelogického na tom, když napíšu:

...tohle je bezva vychytávka sport a dělí se na tohle:" (odstavec)

- chůze po vodě
- chůze po vodě bez vody
- chůze bez chůze

(seznam)

"...naopak tyhle sporty stojí za houby:" (odstavec)

- sbírání hub na severním pólu
- sbírání hub na jižním pólu´
- sbírání hub v obýváku

(seznam)

řečí HTML povězeno:

<p>...text toho bezva sportu:</p>
<ul>
<li>položka<li>
...
<ul>

Hele, a bude to i validní. Věř mi.

Taky místo odstavce můžeš použít nadpis, což je taky celkem fajn.
Keilew
Profil
No jo, teď jsem si toho teprve všim, že v <p> nemůže být dle http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd <ul>. Ne že bych ho tam chtěl cpát...
Chamurappi
Profil
Reaguji na Thommase:
Jako funguje to, to jo
Nefunguje to tak, jak si myslíš, viz Jak funguje HTML. Text pod seznamem už není v odstavci, neboť dotyčný <p> skončil již před <ul>. Seznam do odstavce dát nejde. Nejde jako nejde, nikoliv nejde jako „to se nedělá, tytyty!“.

I když ti to W3C validátorem projde, tak to validní nebude. Kdyby to mělo být XML, tak ti chybí deklarace kódování a validátor by měl ukázat tohle.
Thommas
Profil
Plaváček: Jj tak díky moc. Už jsem to pochopil a opravil.
Chamurappi: Jj tak díky moc. Vůbec to nechápu, nevim, jak to opravit :D (konkrétně to kódovnání) Napiš mi prosim konkrétně, co bych měl kam dopsat/přepsat a proč...to bych ti byl opravdu vděčnej.
viz Jak funguje HTML. Moc zajímavý...tahle stránka mi nějak unikala, zase jsem se něco přiučil.
Chamurappi
Profil
Reaguji na Thommase:
S tím kódováním je to složitější. HTML a X[HT]ML jsou dva různé formáty, které jsou si na první pohled trochu podobné, ale přesto různé. Kódování může určit element <meta http-equiv="content-type"> v HTML a XML deklarace <?xml ... ?> v XML. Nikdy to neplatí naopak. To, jestli je dokument v HTML nebo v XML, neurčuje <!doctype>, neboť ten už je součástí dokumentu — jasno musí být předem, proto o syntaxi rozhoduje HTTP hlavička Content-Type (pozor, neplést s tím <meta> elementem).

Pokud užíváš „text/html“, budou všechna cílová zařízení (vyjma W3C Validátoru) užívat HTML parser. Kódování si vezmou z <meta> a zpravidla přehlédnou všechen nepořádek, co do HTML nepatří (třeba lomítko v <hr />). Zároveň se budou řídit tím článkem, na nějž jsem tě odkázal a nedovolí tedy seznamu vlézt do odstavce.

Pokud užíváš „application/xml“ (nebo podobný), budou všechna cílová zařízení užívat XML parser. Kódování si vezmou z XML deklarace (kterou neuvádíš) a budou nekompromisně vyžadovat dodržování XML syntaxe (kvůli chybějícímu lomítku v <hr> nezobrazí stránku). Seznam do odstavce půjde nacpat, protože v XML neexistují elementy s volitelnou koncovou značkou. Řada prohlížečů a vyhledávačů XHTML nepodoruje.

Ty užíváš „text/html“. W3C Validátor se chová dost podivně: užívá XML parser, ale kódování si bere z <meta>. Tudíž ti klidně projde se zelenou hláškou dokument, který nevyhovuje ani HTML, ani XML. Odkázal jsem tě na předběžný výsledek v českém validátoru — tedy na výsledek po změně Content-Typu. Bez té změny žádnému prohlížeči nevadí chybějící XML deklarace, protože to všichni vnímají jako (odfláknuté) HTML. I český validátor to při výchozím stavu tak vnímá. Máš kód perfektně „optimalizovaný pro W3C Validátor“, ale validní není, spoléhá se na opravu chyb v prohlížečích.

Toužíš-li po validitě, změň deklaraci typu dokumentu na tuto:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
— a odstraň vše, co do HTML nepatří.
Druhou možností je změnit Content-Type a přidat XML deklaraci, ale tím odřízneš část návštěvníků.
Thommas
Profil
O.K. Díky moc! Už jsem opravil, co jste oba radili, a už celý stránky září příjemnou zelení na obou validátorech ;)
Urso
Profil
Prostě "lablabla to se dělí na SEZNAM a pokračuju blablalba". Jako funguje to, to jo, ale mě jde jen o tu validitu (teda ne jen, ale v tomhle případě)
Pokud chceš mít seznam v blokovém elementu, tak místo <p> použij <div>. Ten je ke vnořování dalších blokových elementů jako stvořený.
Petr Tichý
Profil
Urso
Trošku pozdě a hodně špatně.
Bubák
Profil
Trošku pozdě a hodně špatně.
Pokud to bude takhle, nic špatného na tom nevidím:
<div>
<p>text</p>
<ul>
<li>seznam</li>
</ul>
<p>další text</p>
</div>

Ale použítí DIVu, místo odstavců je validní, ale špatně.
Petr Tichý
Profil
Bubák
Cituji: "místo <p> použij <div>", takže si tady nedokazujme, co známe :o)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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