Liste nicht valide

  • Hallo,

    ich habe folgende Liste erstellt:

    Die Liste nutze ich, um die 4 Elemente: Name, Vorname, Email und Ort in Spalten anzuordnen. Jede Listenzeile ist in ein Link (beim ueberfahren faerbt sich der Text rot - a:hover). Nach W3C Standards ist das valide: a umschliesst ein ul Element. Allerdings faellt mir keine bessere Loesung ein. Rein technisch funktioniert es ja auch. Habt ihr Vorschlaege fuer das Problem?

    Sero

  • Das habe ich schon versucht, aber dann wird beim ueberfahren nur das jeweilge Listenelement (z.B. Name) zum link und nicht die gesamte Zeile. Ich moechte, das die gesamte Zeile ein link ist und bei a:hover sich die Schriftfarbe und Hintergrundfarbe der Zeile aendert.

  • ul:hover funktioniert irgendwie nicht . Allerdings gefaellt mir nicht, dass ich in jedem li einen Link schreiben muss mit gleichem Ziel.
    Vielleicht kann man das ja ganz anders loesen?

  • ul:hover sollte funktionieren
    nur nicht in IE5/6

    mit JavaScript
    <ul onmouseover="einfaerben();">

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • also nochmal zusammengefasst: in jedes li den link setzen (da komme ich nicht drumherum) und mit ul:hover und <ul onmouseover="einfaerben();"> die gesamte Zeile einfaerben wenn mouseover.

    sejuma: man die das auch mit einer Tabelle loesen, aber ich finde listen besser.

    Warum ist das eigentlich vailde, es funktioniert doch, wie ich es ursprunglich versucht hatte?

  • Sagen wir's mal so:
    Es wurden Regeln, Standards definiert. Und dagegen "verstößt" dein Quelltext, weil diese Konstruktion nicht erlaubt ist, selbst wenn sie funktioniert.
    Ist ungefähr so, wie wenn du ein Wort falsch schreibst, das im Duden nach der Rechtschreibung eben anders geschrieben wird.
    Davon geht die Welt auch nicht unter.
    Allerdings: Generell sollten sich Browser an die definierten Regeln halten. Tatsächlich ist es so, dass es der eine Browser mehr, der andere weniger tut.
    Unterschiedliche Browser haben somit unterschiedliche Toleranzen.
    Somit kann es in deinem Browser funktionieren, in einem anderen muss es nicht unbedingt klappen.
    Um möglichst sicher zu gehen, dass die Seite in allen Browsern einheitlich dargestellt wird, sollte man sich eben an die Standards halten und seine Seiten valide coden. Eine Garantie für ein einheitliches Ergebnis hast du deshalb aber auch nicht.
    Teste deinen "nicht-validen" Code mal in den unterschiedlichsten Browsern. Wenn sich keiner dran stört, kannst du's auch lassen. Dann hast du zwar gegen eine "Norm" verstoßen, aber keiner hat's gemerkt.

  • Zitat von sero79

    also nochmal zusammengefasst: in jedes li den link setzen (da komme ich nicht drumherum) und mit ul:hover und <ul onmouseover="einfaerben();"> die gesamte Zeile einfaerben wenn mouseover.

    Also ich weiß nicht ob du javascript kannst.
    Aber einfaerben() muss eine Javascript-Funktion sein.
    du kannst es auf SelfHTML nachlesen, wie es geht.
    ul:hover brauchst dud ann nicht.

    Zitat von sero79

    Warum ist das eigentlich vailde, es funktioniert doch, wie ich es ursprunglich versucht hatte?

    Wenn etwas valide ist (in HTML) heißt es nicht unbedingt, dass es richtig ist.
    Das A-Element darf u.A. keine Listen enthalten undauch keine Listenelemente ;)

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Danke noch mal fuer euer Hilfe.
    Ich habe mal die invalide Liste in den gaengigen aktuellen Browsern getestet und es funktioniert. Ich gehe aber auf Nummer sicher und fuege den Link in das Listenelement email ein. Das mit dem Hintergrund bei a:hover lasse ich weg.
    Aber mich wuerde trotzdem mal interessieren wie man mein Beispiel umsetzen koennte: jede Zeile = Link, Spaltenartige Anordnung von z.B. 4 Elementen. Beim ueberfahren der Zeile a:hover und bei Klick wird der Link ausgeloest.