Chtěl bych na serveru webzdarma.cz založit stránky v XHTML, je to možné? Nebude to porušení podmínek webzdarma?
XHTML není problém, jen se do pravého XHTML občas špatně dává povinná reklama.
Máš nějaký speciální důvod, proč použít právě XHTML? Třeba inline matematické vzorce, SVG, poskytování RSS apod. nebo jsi podobně jako já podlehl módní vlně? Pravé XHTML se špatně indexuje ve vyhledávačích.
Toto téma se pro můj dotaz hodí..
Je nějaký validní způsob na XHTML Strict 1.0 udělat vysouvací menu bez JavaScriptu?
Viz. http://www.tvorba-webu.cz/css/vysouvaci-menu.php ale to je způsob pro HTML :-(
Grelek: Zmíněné vysouvací menu bude po opravě běžných HTML chyb zřejmě validní i v XHTML. Jako řešení to vypadá dobře, ale bude nutné vyladit kromě češtiny i design.
Kite, problém mám v tom že jsem nepochopil jak to udělat když následující je v XHTML zakázané podle W3C validátoru.
<ul class="menu">
<li /><a href="#">Prdlajs</a>
<li /><a href="#">Podruhé</a>
<li /><a href="#">Ani potřetí..</a>
</ul>
XHTML je velmi jednoduché. Stačí vědět, co je levá závorka <li> a pravá závorka </li>. Určitě víš, že závorky mohou být do sebe vnořené, ale nesmí se křížit. Na uvedený příklad stačí jednoduchá úprava:
<ul class="menu">
<li><a href="#">Prdlajs</a></li>
<li><a href="#">Podruhé</a></li>
<li><a href="#">Ani potřetí..</a></li>
</ul>
Přečti si http://www.jakpsatweb.cz/html/xhtml.html
Článek jsem přečetl, zítra se v tom pošťárám a výsledek sem vložím.
Mám dojem, že z párových tagů nemůžeš udělat nepárové. Lomítko se v XHTML píše do nepárových (<br />, <hr />, <img />, <input />, ...).
<HTML>Magnusi, v tomto případě problém vznikl z toho, že starší HTML dovoluje některé tagy (klasicky "li" a "p") psát párově i nepárově a ještě dříve se dané tagy psaly pouze nepárově. Nemám na mysli tagy, které už tehdy byly nepárové (jednorázové), ty problém nečiní, protože byly vždy nepárové a vždy se tak užívaly. Ale je to tak 15 let dozadu, dnes je to historie, na kterou je lepší nemyslet.</HTML>
Abych to tak nějak uvedl na pravou míru. XHTML a vlastně XML obecně akceptuje pouze párové tagy. To znamená pouze <neco></neco>. Tagy <neco>, kam spadá input, img, br, jsou pak pro něj nevalidní, protože nejsou uzavřeny. Aby tyto tagy byly validní, tak je potřeba z nich udělat párové tagy. Takže nový řádek by musel být <br></br>. Divný co? A právě kvůli tomu se zavedlo pravidlo zkrácení, kdy se uvádí jednoduchý tag akorát na konci zakončené lomítkem - <br />.
Jednoduše řečeno <neco /> je ve skutečnosti <neco></neco>. Nikoli pouhé <neco>.
Magnus: Z výše uvedeného lze tedy z párových tagů udělat nepárové. Jen musí splňovat podmínku, kdy obsah tagu musí být prázdné.
Grelek: To cos uvedl je nevalidní. Podstatě jsi udělal:
<ul class="menu">
<li></li><a href="#">Prdlajs</a>
<li></li><a href="#">Podruhé</a>
<li></li><a href="#">Ani potřetí..</a>
</ul>
Což je vlastně uvedení tagu tam, kde nemá být. Tag ul akceptuje pouze li. Cokoli jiného je dle XHTML nepřípustné a tudíž i nevalidní.
<HTML>Tomíku, asi se rozepíšu. Starší HTML verze (tuším, že 3.2 a starší) dovolují používat "li" a "p" jako nepárové tagy, přičemž se interpretovaly jako oddělovače (tedy "p" oddělil dva odstavce, "li" oddělil dvě položky seznamu). Od této polovičatosti, která tropila velkou neplechu, se naštěstí v novějších normách upustilo. Ovšem při převodu z této HTML verze do XHTML je třeba si na to dát pozor a patřičně dané odrážky nebo odstavce doobalit (tj. přidat uzavírající tag na konec odstavce nebo odrážky).</HTML>
Nípale ale Tomík má pravdu.
W3C validátor neuznává:
<ul>
<li /><a href="">Odkaz</a>
<li /><a href="">A další</a>
</ul>
Vadí mu <a href="".... v tagu <li />, zajímavé ale je, že když je to zapsané takto:
<ul>
<li><a href="">Odkaz</a></li>
<li><a href="">A další</a></li>
</ul>
Tak je to XHTML validní.
Někdy používám utilitku Tidy, která ze špatně napsaného HTML udělá validní HTML či XHTML. Poradí si například i s tímto:
<title>Titulek stránky
<link href=style.css>
<h1>Nadpis stránky
<li>První položka seznamu
<li>Druhá položka seznamu
<p>Odstavec
<h2>Nadpis druhé úrovně
<td>První pole tabulky
<td>Druhé pole
<tr><td>Druhý řádek
</table>
Vyleze z toho docela hezké XHTML. Pokud jste se odvázali podobně jako já teď, je dobré to po něm zkontrolovat. Používám to spíš jako doplněk editoru, když se mi nechce vypisovat značky.
Greleku, nevím, kde jsi vyhrabal značku <li />. Znamená jeden prázdný řádek seznamu a myslím si, že to snad nikdo nepoužívá.
Nipal: Já tě chápu. Mluvil jsem ale o XHTML. V klasickém HTML je možné používat určité párové tagy i jako nepárové a přitom je to validní a akceptovatelné. Tyto neměly na celkovou funkčnost jaksi vliv, protože, jak píšeš, působily jako oddělovače. Nevím kdo tohle vymyslel, ale myslím, že to bylo asi z důvodu šetření. V té době byla rychlost řádech kilobitů, takže každý bajt představoval drahocenný čas navíc.
Dnes už je takové šetření k ničemu, takže je lepší to dělat podle norem. Zvláště pak právě při přechodu na XHTML je dobré to vědět.
Grelek: Nevím zda jsi to pochopil. <li /> není totéž jako <li>. Je to pouze zkrácený výraz pro prázdný tag <li></li>. Takže jak jsi napsal ten tvůj příklad, tak nemůže být nikdy validní.
Grelek: Ještě jeden příklad pro pochopení.
<ul>
<li />
<li />
<li />
</ul>
Je tohle XHTML validní? ;)
Právě že příklad od Tomíka _je_ validní. Je to seznam čtyř prázdných položek. Jakmile ale za <li /> napíšeš nějaký text, tak už to validní není.
<li /> je ekvivalentní zápisu <li></li>. Pokud chceš, aby položka seznamu nebyla prázdná, musíš text uložit _mezi_ značky, tedy <li>Položka</li>
<li> ... levá závorka
</li> ... pravá závorka
<li /> ... levá i pravá závorka současně, ale mezi nimi nic není.
Tohle jsou úplně základy XML a XHTML.
<HTML>Greleku, já mám taky pravdu. Vzal jsi HTML kód, kde nebyl "li" použít jako párový tag, ale tím ohavným zastaralým nepárovým způsobem. A zcela "chybně" jsi jej převedl do XHTML tak, že jsi sice zachoval nepárovost tagu "li", ale nezkontroloval sis, jak se má podle XHTML specifikace "li" používat.
Ostatní zde rozepisují, jakou chybu jsi udělal z pohledu XHTML, já jen naznačuju, kde se ta chyba vlastně vzala. ;)
Už to nebudu více rozebírat, ale pište mi, že kecám, až když opravdu budu kecat.</HTML>
Aháááááá.......
konečně !
Díky všem za výuku pablba :D
teď v tom mám konečně jasno..
<HTML>Takový věci se stávají. A od toho tu jsme :)</HTML>
Na začátku je XML docela složité, ale až člověk pochopí, jak je to primitivní, tak zvládne i XHTML, SVG, MathML, XSLT a další odvozeniny. Jen je trochu ukecané, proto existují různé generátory.
Pár dnů jsem tu nebyl a koukám, že debata je o něčem trochu jiném.
Kit píše, že "XHTML není problém, jen se do pravého XHTML občas špatně dává povinná reklama". Právě z toho mám obavu. Jak tedy na to?
Pravé XHTML nepoužívá skoro nikdo, tak to řešit nemusíš. Běžně používané XHTML stejně v prohlížeči zpracovává HTML parser, protože v MIME je "text/html".
Nejdřív stránku nahraješ jako HTML a kód reklamy si nakopíruješ do XHTML. Robot to automaticky neudělá.
Koukám, že používáš HTML5, tak to nemusíš řešit vůbec. Pokud bys chtěl přejít na XHTML, schovej si reklamní kód. Ale jak už jsem psal: Pokud XHTML z nějakého závažného důvodu nepotřebuješ, zůstaň u HTML5.
Jen tak mimo, na XHTML 1.0 Strict se validní reklama vkládá takto:
<!--WZ-RELAMA-1.0-STRICT-->