Falk: Verweis-Problem im IE6

Hallo,

ich habe im body Element einen id definiert <body id="top">, mit mehreren <a href="datei.htm#top"> Elementen Verweise ich nun auf diese. In FF, Opera springt mein Dokument korrekt an den Anfang im IE6 tut sich gar nichts. Warum ist das so, was habe ich falsch gemacht? Das id Attribut im body scheint okay zu sein der W3C-Validator meckert nicht.

Gruß
Falk

  1. echo ($light == true) ? 'Guten Tag,' : 'Guten Abend,';

    eine Anker zudem du mit dem <a href="datei.htm#top"> springen willst hat die Form <a name="top"></a>. Füge dies direkt nach dem Body-Tag ein und Links die auf den Anker Top zielen springen auch dahin. Siehe dazu auch:
    http://de.selfhtml.org/html/verweise/projektintern.htm#anker

    Grüße

    Markus

    --
    Langeweile? Sudoku online spielen ;)
    1. Hi,

      eine Anker zudem du mit dem <a href="datei.htm#top"> springen willst hat die Form <a name="top"></a>.

      aus welchem Jahrhundert hast Du denn diese Weisheit? Neuerdings befinden wir uns im einundzwanzigsten, da gilt das, was Falk schrieb.

      Der IE schafft es aus irgendwelchen Gründen nicht, das <body>-Element als Anker zu akzeptieren. Nutze hierzu das erste Inhaltselement, typischerweise ein Element mit einer ID wie z.B. "header".

      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. Der IE schafft es aus irgendwelchen Gründen nicht, das <body>-Element als Anker zu akzeptieren. Nutze hierzu das erste Inhaltselement, typischerweise ein Element mit einer ID wie z.B. "header".

        Hi Cheatah,

        unterhalb des <body> Elements habe ich ein <div> mit einer id. Wenn ich nun darauf verweise springen aber alle drei Browser nicht direkt bis an den oberen Rand sondern wenige Pixel unterhalb. Kann ich denn auch die id im body lassen und zusätzlich ein <a name="top"></a> an erster Stelle im div platzieren? Dann würde FF und Opera bis ganz nach oben springen und nur der IE etwas unterhalb stoppen. Ich bin mir nicht so sicher, ob ich eine id="top" und ein name="top" im Dokument haben darf, der W3C-Validator lässt es zumindest durchgehen.

        Gruß
        Falk

        1. Hi,

          unterhalb des <body> Elements habe ich ein <div> mit einer id. Wenn ich nun darauf verweise springen aber alle drei Browser nicht direkt bis an den oberen Rand sondern wenige Pixel unterhalb.

          dann fängt dieses Element zu weit unten an. Kannst Du die Abstände des <body>-Elements auf dieses Element bzw. dessen Abstände in sein erstes Kind umverlegen?

          Kann ich denn auch die id im body lassen und zusätzlich ein <a name="top"></a> an erster Stelle im div platzieren?

          Nein. Erstens hättest Du das Problem nicht gelöst, zweitens eine ID doppelt vergeben - das name-Attribut des <a>-Elements nutzt den selben Namensraum wie IDs - und drittens genau das getan, was seit Jahren nur noch als Krebsgeschwür betrachtet werden kann: <a name> verwendet. Davon abgesehen wird das <a>-Element auch seinen Platz benötigen.

          Ich bin mir nicht so sicher, ob ich eine id="top" und ein name="top" im Dokument haben darf, der W3C-Validator lässt es zumindest durchgehen.

          Der W3C-Validator kann nur gegen Informationen prüfen, die in der DTD hinterlegt sind. Warum das name-Attribut CDATA ist und nicht ID, kann ich Dir nicht sagen; vermutlich hat es Gründe der Abwärtskompatibilität. Sieh es bitte immer so: Wenn der Validator grünes Licht gibt, heißt das nicht, dass der Code richtig ist. Es ist genau anders herum - wenn er _nicht_ grünes Licht gibt, heißt das, dass der Code _nicht_ richtig ist.

          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. Hi,

            nun habe ich das <a name> aus meinem code verbannt :-)

            dann fängt dieses Element zu weit unten an. Kannst Du die Abstände des <body>-Elements auf dieses Element bzw. dessen Abstände in sein erstes Kind umverlegen?

            Wie meinst Du das mit den Abständen des <body> auf das <div> Element umverlegen?
            Ich habe zumindest mal alle Leerzeichen und Zeilenumbrüche zwischen den beiden Elementen entfernt, aber es hat nicht geholfen.

            Gruß
            Falk

            1. Hi,

              Wie meinst Du das mit den Abständen des <body> auf das <div> Element umverlegen?
              Ich habe zumindest mal alle Leerzeichen und Zeilenumbrüche zwischen den beiden Elementen entfernt, aber es hat nicht geholfen.

              ich meine insbesondere die margin- und padding-Eigenschaften.

              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. Hi Cheatah,

                da lagst Du voll richtig :-) Hatte ein margin-top von 0.3em drin, dafür hab ich nun padding-top genommen und jetzt klappt es. Vielen Dank!

                Falk

          2. @@Cheatah:

            Warum das name-Attribut CDATA ist und nicht ID, kann ich Dir nicht sagen; vermutlich hat es Gründe der Abwärtskompatibilität.

            Vielleicht wegen der Kompatibilität mit dem 'name'-Attribut anderer Elemente? Bei einigen ('input' für Radiobuttons und Checkboxen) ist es erforderlich, dass mehrere Elemente denselben Wert ihres 'name'-Attributs haben können.

            Und springen nicht alle Browser bei 'href="#"' an den Seitenanfang?

            Live long and prosper,
            Gunnar

            --
            „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)