W3C-konform trotz Block- in Inline-Element?

  • Hallihallo,
    ich habe folgendes Problem:

    Code
    ...
      <a href="..." ...>
        <div class="..." ...>
          Linktext
        </div>
      </a>
    ...


    * ... sind nur Platzhalter für die eigentlichen Attributwerte

    Dies funktioniert in fast allen Browsern. Somit steht der Linktext in einem rechteckigen DIV, welches man nun per CSS so gestalten kann, dass der Besucher eine intuitive Navi erhält. Der momentan aktive Linktext wird dabei farblich hinterlegt usw. etc.

    Das funktioniert wie gesagt sehr gut, ABER es ist nicht W3C-konform!!!
    Laut der Standards darf innerhalb eines Inline-Elementes (span, a, etc.) kein Block-Element sitzen (div, p, et.)
    Jetzt mal meine Frage:
    Gibt es für diesen Fall breits Workarounds bzw. gut funktionierende Alternativvarianten?

    PS: Ich kenne die Einstellung: Richtig ist was funktioniert. Unabhängig ob's W3C-konform ist oder nicht.
    Das sehe ich anders und möchte euch bitten solche Kommentare zu vermeiden. Thx.

    "Carpe Diem" powered by positiv Feelings

  • moin ...

    ok, ich gebe zu .. nicht besonders elegant der Vorschlag ^^

    Eine andere Möglichkeit wäre Deine Links in Listen zupacken. Dann kannst Du mittels css reichlich formatieren ... Nützlich ist dann auch das Du beim hover das Hintergrundbild wechseln kannst.

    gruß

  • Zitat von topfblume

    moin ...

    Was spricht dagegen dem <a> direkt eine Klasse zuzuweisen ?

    gruß

    Dann erfüllt er die undokumentierte W3C-Vorgabe nicht, in jeder HTML-Seite mind. 50 Div-Tags zu verwenden. :wink:
    Irgendwie scheint unter den 'Webmastern' die Div-Tag-Sucht ausgebrochen zu sein.

    G.a.d.M.

    <div>Ronald</div>

  • Ja seit dem irgendwer erzählt hat, das mann doch bitte keine Tabellen mehr fürs Layout nehmen solle, werden diese Div-Süppchen gekocht.

    <table>
    <tr>
    <td>topfblume :wink: </td>
    </tr>
    </table>

  • Hmmm...nicht wirklich hilfreich, aber trotzdem Danke.

    Anmerkungen:
    Ich verwende in besagter Site die Standard-Plone-Navigation und die produziert solche "DIV-Süppchen". Like this:

    Code
    <div>
      <a href="http://www.augen-venividi.com/ueber_uns/dr_zipf-pohl/"
         class="navItem navLevel2 navLevel2sel setActiveLvl2"
         title="">                            
          <div class="navItemText">Dr. Zipf-Pohl</div>
      </a>
    </div>


    Von daher also mein Problem.
    Jedoch bin ich am heutigen Tage auf eine andere evtl. sehr elegante Variante gestossen, die das Problem vermutlich lösen kann.
    Das DIV innerhalb des <a> wird weggelassen und dem <a>-Tag wird das Stylesheet display: block; zugewiesen.
    Damit verhält sich das <a> selbst wie ein DIV ohne jedoch gegen die W3C-Norm zu verstossen.

    Ich denke das sollte es sein. Gibt's Gegenargumente?

    "Carpe Diem" powered by positiv Feelings

  • Zitat von Torty


    Jedoch bin ich am heutigen Tage auf eine andere evtl. sehr elegante Variante gestossen, die das Problem vermutlich lösen kann.
    Das DIV innerhalb des <a> wird weggelassen und dem <a>-Tag wird das Stylesheet display: block; zugewiesen.
    Damit verhält sich das <a> selbst wie ein DIV ohne jedoch gegen die W3C-Norm zu verstossen.

    Ich denke das sollte es sein. Gibt's Gegenargumente?

    Nein - wir wußten nur nicht, daß dir diese Variante nicht bekannt ist, da es eigentlich ja CSS-Standard ist.

    G.a.d.M.

    Ronald

  • Jupp - woher solltet ihr auch ahnen, dass ich sowas nicht weiß. :P 8)

    Ne im Ernst: CSS bietet jede Menge Möglichkeiten, so dass man sich gelegentlich darin verliehren kann. Dann ist es gut, von anderen Leutz Tips zu bekommen, um aus dem Gedankenloch wieder heraus zu kommen.

    Also THX.

    "Carpe Diem" powered by positiv Feelings