Christian: <a ...><span style="display:block">...</span></a> erlaubt?

Hi,

meint ihr das folgender Code erlaubt ist:

<a href="..."><span style="display:block">...</span></a> erlaubt?

Das was mich stört ist, das <a> ja nur Inline-Elemente enthalten darf. <span> ist zwar eins davon, aber es wird nun man mal als Block element dargstellt.
Ist das trotzdem legitim??

Laut W3-Validator ist das so korrekt!

Hintergrund ist folgender:
Wenn ich notiere:

<div style="position:absolute">
<a href=""><span style="background-color:#ffcc00;padding:50px;">Test</span></a>
</div>

Hat das SPAN nur die 50px padding in horizontaler Richtung, nicht aber in vertikaler (getestet mit verschiedenen Browsern)

seht hier:
http://www.abi01-wrg.de/span.html

--> (1) im Link

Mache ich das SPAN als BlockElement, dann klappts.

--> (2) im Link

Mache ich um das SPAN noch ein relativ-positioniertes DIV, dann klappts zwar fast, jedoch ist dann alles um die Anzahl Padding-Pixel nach oben verschoben.

--> (3) im Link

Weiß einer wieso das alles so ist?? Ich versteh dieses komische Verhatlten einfach nicht!

Gruß
Christian

  1. Hallo Christian,

    meint ihr das folgender Code erlaubt ist:
    <a href="..."><span style="display:block">...</span></a> erlaubt?

    Ja. Wärst Du etwas aufmerksamer gewesen, dann wüßtest Du, daß das auch
    ein paar Centimeter weiter unten diskutiert wird: [pref:t=52819&m=291749]

    Das was mich stört ist, das <a> ja nur Inline-Elemente enthalten darf.
    <span> ist zwar eins davon, aber es wird nun man mal als Block element
    dargstellt.

    Block- und Inlineelemente sind in HTML und CSS unterschiedliche Dinge,
    so verwirrend das auch sein mag.

    <div style="position:absolute">
    <a href=""><span style="background-color:#ffcc00;padding:50px;">Test</span></a>
    </div>

    Ich würde ja versuchen ökonomischer zu arbeiten, und gleich dem a-Element
    die absolute Postionierung, das Aussehen als Blockelement und das Padding
    verpassen und mich somit eines divs und eines spans entledigen, aber wenn
    Du meinst...

    Hat das SPAN nur die 50px padding in horizontaler Richtung, nicht aber in
    vertikaler (getestet mit verschiedenen Browsern)

    Weil es ein Inline-Element ist.

    --> (1) im Link
    --> (2) im Link
    --> (3) im Link

    Ich sehe nur einen Testfall im Link, deswegen kann ich hier nicht
    wirklich nachvollziehen, was Du meinst.

    • Tim
    --
    <img src="http://validator.w3.org/images/v15445" border="0" alt="">
    1. Hi,

      Ja. Wärst Du etwas aufmerksamer gewesen, dann wüßtest Du, daß das auch
      ein paar Centimeter weiter unten diskutiert wird: [pref:t=52819&m=291749]

      oh ja, danke. Dann hat sich vieles schon geklärt.

      Ich würde ja versuchen ökonomischer zu arbeiten, und gleich dem a-Element
      die absolute Postionierung, das Aussehen als Blockelement und das Padding
      verpassen und mich somit eines divs und eines spans entledigen, aber wenn
      Du meinst...

      Das hat andere Hintergründe. z.B. das ich das DIV auch unter Netscape 4 als Layer ansprechen und behandeln möchte.

      Hat das SPAN nur die 50px padding in horizontaler Richtung, nicht aber in
      vertikaler (getestet mit verschiedenen Browsern)

      Weil es ein Inline-Element ist.

      Das ist kein Grund. --> (4) im Link.

      Ich sehe nur einen Testfall im Link, deswegen kann ich hier nicht
      wirklich nachvollziehen, was Du meinst.

      Oh ja, sorry. Hab den Upload vergessen. jetzt aber:

      http://www.abi01-wrg.de/span.html

      Christian

      1. Hallo,

        Das ist kein Grund. --> (4) im Link.

        Das war aber vorhin noch nicht Dein Testfall. Bei Nummer 4 positionierst
        Du das span absolut, das verändert einiges. Du mogelst! ;-)

        Ich nehme an, Dein Problem ist jetzt gelöst?

        • Tim
        --
        <img src="http://validator.w3.org/images/v15445" border="0" alt="">
        1. Hi,

          Das war aber vorhin noch nicht Dein Testfall. Bei Nummer 4 positionierst
          Du das span absolut, das verändert einiges. Du mogelst! ;-)

          (4) hab ich extra noch für dich dazu gemacht.

          ok, ich hab jetzt das span normal positioniert. Kannst du dann erklären, warum der horizontale Padding größer als NUll ist?

          Normal sollte es laut deiner erklärung wie in (1) aussehen.
          Padding ist diesmal auf 150px.

          Christian