Tom: Ganzes <div> als Linkarea verwenden

Hello,

ein <a>-Element darf nur Inline-Elemente enthalten...

Wie kann ich (ohne JavaScript) ein ganzes <div>-Element als Linkfläche verwenden und dann bitte auch die typische Linkunterstreichung (text-decoration) für alle enthaltenden Elemente ausschalten?

Gibt es keine Möglichkeit, oder stehe ich nur gerade auf dem Schlauch?

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de
  1. Hi,

    ein <a>-Element darf nur Inline-Elemente enthalten...

    Und auf diese kannst du dich nicht beschränken, weil ...?

    Wie kann ich (ohne JavaScript) ein ganzes <div>-Element als Linkfläche verwenden und dann bitte auch die typische Linkunterstreichung (text-decoration) für alle enthaltenden Elemente ausschalten?

    Gibt es keine Möglichkeit

    Mit HTML gibt es keine direkte Möglichkeit. XHTML 2 sah vor, auch zahlreichen anderen Attributen ein href-Attribut zu erlauben - aber das hat ja von HTML5 den Todesstoß verpasst bekommen.

    Du könntest aber ein im DIV-Element liegendes A-Element per CSS entsprechend darüber positionieren.
    Das wird dann aber vermutlich wieder andere Nachteile in der Nutzung nach sich ziehen, bspw. wenn Elementinhalte markiert&kopiert werden sollen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. @@Tom:

    nuqneH

    ein <a>-Element darf nur Inline-Elemente enthalten...

    Mit HTML5 fällt diese Beschränkung.

    und dann bitte auch die typische Linkunterstreichung (text-decoration) für alle enthaltenden Elemente ausschalten?

    ?? Wo ist das Problem?

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Hi,

      ein <a>-Element darf nur Inline-Elemente enthalten...

      Mit HTML5 fällt diese Beschränkung.

      Und so lange nicht alle Browser HTML5-Parser einsetzen, bleibt sie de fakto bestehen - weil die Fehlerkorrektur eines HTML-TagSoup-Parsers sonst u.U. etwas anderes aus dem Code macht, als beabsichtigt war.

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      1. @@ChrisB:

        nuqneH

        ein <a>-Element darf nur Inline-Elemente enthalten...

        Mit HTML5 fällt diese Beschränkung.

        Und so lange nicht alle Browser HTML5-Parser einsetzen, bleibt sie de fakto bestehen - weil die Fehlerkorrektur eines HTML-TagSoup-Parsers sonst u.U. etwas anderes aus dem Code macht, als beabsichtigt war.

        Prinzipiell ACK. Aber welche gegenwärtig relevanten Browser schließen ein 'a'-Element denn wirklich implizit beim Start-Tag eines Blockelements?

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
    2. Hello,

      ein <a>-Element darf nur Inline-Elemente enthalten...

      Mit HTML5 fällt diese Beschränkung.

      und dann bitte auch die typische Linkunterstreichung (text-decoration) für alle enthaltenden Elemente ausschalten?

      ?? Wo ist das Problem?

      Da das <a>-Element (noch) keine Blockelemente enthalten darf, kann ich es nicht ausprobieren.
      Und das Schlimmste zum Schluss: IE6 muss das Ganze auch darstellen können...

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  3. Hallo Tom,

    ein <a>-Element darf nur Inline-Elemente enthalten...

    Wie kann ich (ohne JavaScript) ein ganzes <div>-Element als Linkfläche verwenden und dann bitte auch die typische Linkunterstreichung (text-decoration) für alle enthaltenden Elemente ausschalten?

    Gibt es keine Möglichkeit, oder stehe ich nur gerade auf dem Schlauch?

    Ich weiß ja nciht, was das div enthalten soll, aber prinzipiell kann das a im div verwendet werden und so groß wie das div sein, indem es display:block erhält.

    Nur: das weißt Du ja selber - oder stehst Du wirklich auf dem Schlauch? :-)

    Viele Grüße,
    Marc.

    --
    Und immer schön
    validieren (http://validator.w3.org/)
    1. @@Marc:

      nuqneH

      Ich weiß ja nciht, was das div enthalten soll, aber prinzipiell kann das a im div verwendet werden und so groß wie das div sein, indem es display:block erhält.

      Da hätte ich dann aber noch eine Frage: Wozu dann das 'div'?

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Hello,

        Ich weiß ja nciht, was das div enthalten soll, aber prinzipiell kann das a im div verwendet werden und so groß wie das div sein, indem es display:block erhält.

        Da hätte ich dann aber noch eine Frage: Wozu dann das 'div'?

        Ja genau. Das <div> benötige ich nur, weil ich variable Inhalte darstellen muss. Und es soll dann das gesamte Feld sensitiv sein für den Link. Scheint so, dass es nicht ohne JavaScript geht. Das versuche ich aber immer zuerst, bevor ich dem Drängen nachgebe ;-)

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Ich weiß ja nciht, was das div enthalten soll, aber prinzipiell kann das a im div verwendet werden und so groß wie das div sein, indem es display:block erhält.

          Da hätte ich dann aber noch eine Frage: Wozu dann das 'div'?

          Ja genau. Das <div> benötige ich nur, weil ich variable Inhalte darstellen muss. Und es soll dann das gesamte Feld sensitiv sein für den Link. Scheint so, dass es nicht ohne JavaScript geht. Das versuche ich aber immer zuerst, bevor ich dem Drängen nachgebe ;-)

          Aber warum das div-Element? Warum nicht einfach ein display: block; für das a-Element?

          Ich verstehe nicht, warum das nicht funktioniert - oder warum ersetzt du nicht das div-Element durch ein span-Element, wenn schon ein zusätzliches notwendig ist?

          1. Hello,

            Aber warum das div-Element? Warum nicht einfach ein display: block; für das a-Element?

            Ich verstehe nicht, warum das nicht funktioniert - oder warum ersetzt du nicht das div-Element durch ein span-Element, wenn schon ein zusätzliches notwendig ist?

            Ich weiß doch nicht, was da kommen wird.

            Der User kann in den Bereich verschiedene (vorgefertigte) Elemente einsetzen. Dazu gehören auch Überschriften, Tabellen, Listen ...

            Texte und Bilder wären ja kein Problem.

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de