Autor Zpráva
kachnak
Profil
Zdravím.
Môže byť v odkaze <a href=..> použitý <div> ? (viď príklad dole)
validátor mi hlási samé chyby tochto typu a neviem prečo.
Stránka funguje vo všetkých prehliadačoch dobre, len validátoru niečo vadí.
Ďakujem

chybové hlásenie:
Line 12, Column 33: document type does not allow element "div" here; missing one of "object", "applet", "map", "iframe", "button", "ins", "del" start-tag

<!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">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <link href="moduly/default.css" type="text/css" rel="stylesheet"/>
    <title>TITLE</title>
  </head>
  <body>
        <div class="log_link">
          <a href="index.php?obsah=zabudnute_heslo">
            <div class="login_a">Zabudol si heslo?</div>
          </a>
        </div>  
  </body>
</html>
panther
Profil
kachnak:
jestli funguje, tak je povolený. Dokonce je v HTML5 i validní, kdyby někdo věřil na pohádky o validitě. Ty možná věřit budeš, stejně, jako věříš na pohádky o xhtml.

Druhá věc je, že v tomto konkrétním případě je ten <div> (i jakýkoliv element) zbytečný, styluj přímo odkaz.
Trejpa
Profil
kachnak:
validátor mi hlási samé chyby tochto typu a neviem prečo.
Validátor kontroluje dokument podle DTD. V odkázané DTD se píše, že odkaz nesmí obsahovat blokové prvky, jakým je třeba DIV. Pokud ho obsahuje, tak je stránka nevalidní.

Protože ale prohlížeč nevaliduje a tvou stránku zobrazuje podle pravidel HTML, tak mu to vůbec nevadí a funguje to v něm. Jinak viz panther, styluj přímo odkaz.
kachnak
Profil
no lenže v tom odkaze mám aj text aj obrázky a niekedy aj checkbox, proste je to taký veľký odkaz ktorý nedokážem nastylovat sam o sebe, lebo vo vnútri je kopa ďaľších DIV ktoré styluju tvar vo vnútri odkazu.
vid pravý stĺpec: Odkaz
panther
Profil
kachnak:
ani na jeden z uvedených příkladů div nepotřebuješ. Ale pokud je tam chceš, použij tebou uvedenou konstrukci a na validitu se vykašli.
PP
Profil *
panther:
na validitu se vykašli.
Áno, podľa tohto tvrdenia sa vykašli aj na červenú na križovakte, keď si na križovatke sám, veď môžeš bezpečne prejsť.
Udivuje ma, že človek s takýmto prístupom robí moderátora na fóre, vďaka ktorému vyrastajú nový tvorcovia webov.
panther
Profil
PP:
povídáš nesmysly a je vidět, že tvé odborné schopnosti moc daleko nesahají.

Jestli chceš o validitě debatovat, založ si prosím vlastní vlákno a tyhle dva příspěvky tam přesunu. Jinak je smažu (stejně jako další na toto téma zde). Zároveň mi do toho nového vlákna napiš nějaké plus, které má validní web oproti webu nevalidnímu.

A moderátora tu můžu dělat mimojiné právě proto, že vím, že na validitě nezáleží :-)
Chamurappi
Profil
Reaguji na PP:
Pokud jsem na křižovatce sám, přejdu raději na červenou, než abych si čudlíkem vyžádal zelenou a zbrzdil později projíždějící auta. Ty se vykašli na analogie. Prehistorická pravidla HTML mají pramálo společného s dopravními předpisy. Z pohledu sémantiky mě nenapadá žádný rozumný důvod, proč by bloky (tedy i nadpisy, odstavce) nemohly být odkazem.

človek s takýmto prístupom robí moderátora na fóre
Kdyby věšel začátečníkům na nos bulíky o křižovatkách, moderátorem by nebyl.
Já mám podobný přístup a to jsem nejen zdejší moderátor, ale i provozovatel jednoho validátoru :-)


Reaguji na kachnaka:
Existují i jiné elementy než odkaz a <div>. Dokonce existuje i řádkový ekvivalent <div>u (tedy obecný obalující řádkový element), hledej, šmudlo.
Joker
Profil
PP:
Jenže panther má pravdu. Validace není „červená na křižovatce“, validace by byla spíš něco jako kontrolky na přístrojové desce v autě. Když se nějaká rozsvítí, na něco mě to upozorňuje (například že jsou zapnuté mlhovky nebo zatažená ruční brzda), ale neznamená to ještě, že jde o nějaký zásadní problém.

edit: Koukám se to tu rozjelo rychleji než jsem to vůbec napsal :)
PP
Profil *
kachnak:
Robiť kód, ktorý sa dobre zobrazí v prehliadačoch, alebo si dať tú námahu a spraviť ho navyše validným?
Si na dobrej ceste keďže ťa zaujímalo, prečo validátor vykazuje chybu keď v prehliadačoch sa to zobrazuje správne.
Aj keď pridať sa ku "kultu antivalidátorov" je určite jednoduchšia cesta.
__construct
Profil
PP:
Aj keď pridať sa ku "kultu antivalidátorov" je určite jednoduchšia cesta.
To že je web validný oficiálny validátor povie, že web je validný ešte nič neznamená
Chamurappi
Profil
Reaguji na PP:
Si na dobrej ceste keďže ťa zaujímalo, prečo validátor vykazuje chybu keď v prehliadačoch sa to zobrazuje správne
A proč tedy vykazuje chybu? Mě také zajímá, proč nesmí být obecný blok v obecném odkazu… pořád mi to nikdo rozumně nevysvětlil. Sekta validofilů mi vždy jen odvětí něco na způsob „prostě to tak má být, protože existují dopravní předpisy“ :-)
Joker
Profil
Chamurappi:
Mě také zajímá, proč nesmí být obecný blok v obecném odkazu
No, proti konstrukci <a><div> … </div></a> bych důvod měl: V převážné většině případů kdy je jeden prvek přímo obalený jiným je jeden z nich zbytečný.
Taková „webová Occamova břitva“: Není-li prvek potřeba k vyjádření obsahu dokumentu, je lepší se obejít bez něj.
Str4wberry
Profil
No, proti konstrukci <a><div> … </div></a> bych důvod měl

Tak to by třeba řešil nějaký univerzální atribut href, který by šel dát i tomu <div>u (nebo samozřejmě čemukoliv jinému).

Já také nevidím důvod, proč bych nemohl dát <div> do <a>, když ono to vlastně s malým trikem jde i validně. :–)
nemeja
Profil
Omlouvám se, že obnovuji staré vláko. Narazil jsem na stejný problém, dělám práci do školy a učitel to chce strictně validně, tudíž bych chtěl poprosit o ten trik, aby to šlo validně. Děkuji :-)
Trejpa
Profil
nemeja:
V HTML 5 to validní je. Stačí změnit odkázanou DTD.
panther
Profil
nemeja:
případně platí to, co napsal Joker v [#13]. Na 99% tam ten tvůj div bude zbytečný a bude zralý na vyhození.
nemeja
Profil
 <div class="polozka">
                    <a href="odkaz_na_galerii" title="popis">
                      <div class="ikona">
                      </div>
                      <div class="popis">
                        Popis galerie
                      </div>
                    </a>
</div>

klidně to bez toho udělám, jen nevím jak. Chci aby celej div byl odkaz, zatím jsem nepřišel jak jinak na to.
.ikona přiřazuju v css obrázek pomocí background
Str4wberry
Profil
V HTML 5 to validní je. Stačí změnit odkázanou DTD.
panther
Profil
nemeja:
Jelikož se jedná o seznam/menu (dle .polozka), správně by to mělo být takto:

<ul id="menu"><!-- atribut ID lze zmenit dle potreby, nejedna-li se o menu -->
    <li><a href="odkaz">Popis galerie</a>
    <li>... <!-- dalsi polozka -->
</ul>

CSS
/* selektor ".polozka" nahradit za "#menu li", vlastnosti mu zustanou */
#menu li a {background: url('ikonka') left top no-repeat; padding-left: 20px; display: block;}
nemeja
Profil
panther:
Opravdu mě nenapadlo dělat odkazy na galerii pomocí seznamu. Dík :)
Petr ZZZ
Profil
Reaguji na [#8] Chamurappiho:
Neměls v plánu opravit si odkazy na validátor? :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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