Ferby: Fehler in Firefox?

Hallo,

Ich habe als versehen einen Fehler gemacht statt </a> habe ich <a/> geschrieben:

-----

<style type="text/css">
a:link { text-decoration:none;}
a:visited { text-decoration:none; color:#0000FF;}
a:hover { text-decoration:underline;}
a:active { color:#FF0000;}
</style>

<a href="test.html">Alle drei Texte<a/> werden unterstrichen und <a href="test.html">beim anklicken rot.</a>

-----

Schaut euch das mal mit Firefox an und geht mit der Maus drüber und klickt drauf. Warum stellt das Firefox so dar? Die Links funktionieren auch. Ich verstehe nicht warum der Text zwischen den Links auch beim drübergehen unterstrichen und beim anklicken rot wird aber kein Link ist.... ihr????

Ferby

  1. Hi,

    Schaut euch das mal mit Firefox an und geht mit der Maus drüber und klickt drauf. Warum stellt das Firefox so dar?

    der Code ist - wie Du ja weißt - fehlerhaft. Daher muss der Browser eine Fehlerkorrektur durchführen, die im Fall von Mozilla[1] folgendes Ergebnis liefert:

    <a href="test.html">Alle drei Texte</a><a> werden unterstrichen und </a><a href="test.html">beim anklicken rot.</a>

    <a> ohne href-Attribut ist kein Link, aber ein Element - ergo ist die Pseudo-Klasse :link nicht zutreffend, :hover jedoch schon.

    Cheatah

    [1] Firefox wird vermutlich nicht anders reagieren.

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      ich wußte nicht das ein Browser Fehler ausbessert, danke jetzt weiß ich´s.

      Ferby

    2. Hallo,

      der Code ist - wie Du ja weißt - fehlerhaft. Daher muss der Browser eine Fehlerkorrektur durchführen, die im Fall von Mozilla[1] folgendes Ergebnis liefert:

      <a href="test.html">Alle drei Texte</a><a> werden unterstrichen und </a><a href="test.html">beim anklicken rot.</a>

      Wieso eigentlich? Ich hätte jetzt folgendes erwartet:
      <a href="test.html">Alle drei Texte</a><a></a> werden unterstrichen
      und <a href="test.html">beim anklicken rot.</a>

      Grund:
      Wenn man nur ein <a/> notiert, macht Firefox ein <a></a> draus,
      was ja korrekt ist. Ist ein vorangehendes <a> noch nicht geschlossen,
      wird erst noch ein </a> vorangestellt. Damit würde sich </a><a></a>
      ergeben.
      Wieso aber taucht bei obigem Beispiel das abschließende "</a>" gar
      nicht bzw. erst vor dem letzten <a href="..."> auf?

      Gruß
      Slyh

      1. Hi,

        Wieso eigentlich?

        mich hat es auch etwas gewundert. Ich nehme an, es rührt daher, dass <a> nicht EMPTY sein kann, und somit der Endslash für einen Gecko ohne Wirkung sein muss. Folglich wurde das Element nur geöffnet, nicht geschlossen; der nächste <a>-Tag schließt es, weil <a> nicht in <a> geschachtelt werden kann.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Moin,

          mich hat es auch etwas gewundert. Ich nehme an, es rührt daher, dass <a> nicht EMPTY sein kann

          Also das wage ich dann doch zu bezweifeln. <a name="foo"></a> hat ganz sicher seine Berechtigung. Der Grund wird vielmehr sein, dass der Gecko im HTML- und nicht im XML-Modus war. Da ignoriert er soweit ich das sehen kann grundsätzlich />-Konstrukte und interpretiert ein <foo/> als wäre <foo> im Code. (Um dann je nach Definition des Elementes implizit gleich wieder ein <foo></foo> draus zu machen, wie bei <img> beispielsweise.)

          In HTML ist das so aber eh nicht erlaubt, da wäre <a/>/ korrekt (und der Validator versucht auch das so zu interpretieren, beschwert sich dann aber über das fehlende zweite /) und gleichbedeutend mit <a>&gt;</a> (auch wenn das kein Browser hinkriegt).

          --
          Henryk Plötz
          Grüße aus Berlin
          ~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
          ~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~
          1. Hi,

            mich hat es auch etwas gewundert. Ich nehme an, es rührt daher, dass <a> nicht EMPTY sein kann
            Also das wage ich dann doch zu bezweifeln. <a name="foo"></a> hat ganz sicher seine Berechtigung.

            <element></element> ist zwar leer, aber nicht EMPTY[1] - das ist nur <element /> ;-) Soll heißen: End-Tag required.

            Der Grund wird vielmehr sein, dass der Gecko im HTML- und nicht im XML-Modus war. Da ignoriert er soweit ich das sehen kann grundsätzlich />-Konstrukte

            Okay, diese Beobachtung fehlt mir bisher (mangels Tests). Das ist eine gute Erklärung.

            Cheatah

            [1] Kurz oberhalb von http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.3.3.1: '[...] the content model "EMPTY", this is strengthened to the rule that the end tag *must* be omitted.'

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes