Jörg: interner Anker in einer Tabelle

Hallo,

ich weiß nicht wie oft die Frage schon gestellt worden ist, aber ich weiß keinen Ausweg mehr! Habe auch schon das halbe Forum durchgesucht!

Ich habe vor eine Seite über Formel 1 zu machen! Und da biete ich auf einer Seite alle Informationen zu einem Rennfahrer und seinem Team an! Grafisch müsst ihr euch das in etwa so vorstellen:

Startnummer             Fahrer                      Team
1                       M. Schumacher               Ferrari
2                       R. Barrichello              Ferrari
...                     ...                         ...
...                     ...                         ...

22                      A. Yoong                    Minardi
23                      M. Webber                   Minardi

Anklicken kann man dabei die Fahrer und das Team. Wenn man dies tut öffnet sich ein kleines Popupfenster welches ich mit Javascript realisiert habe. Nun ist es ja bekannt, dass wenn die Inhalte zu lang für ein Fenster werden, dass wenn ich z. B. ganz unten auf Minardi klicke, der Fensterinhalt wieder ganz an den Anfang der Seite verschoben wird!

So und jetzt zu meinem Problem! Dies habe ich versucht zu unterdrücken indem ich interne Anker gesetzt habe! also meinetwegen auf M Schumacher habe ich auf Startnummer 1 bezogen, so dass er bei einem Klick auf Schumacher nicht wieder ganz an den Anfang scrollt sondern auf Schumacher zentriert! Wenn ich aber von da auf R. Barrichello klicke, verschiebt sich der Fensterinhalt soweit, dass ich gerade noch Barrichello lesen kann, etwa so:

------------------------------------------------
2               R. Barrichello           Ferrari
3               D. Coulthard             McLaren
4               ...                      ...

wenn ich dann angenommen auf D. Coulthard klicke, verschiebt sich der Fensterinhalt dass ich gerade noch D. Coulthard lesen kann, also genauso:

------------------------------------------------
3               D. Coulthard             McLaren
4               K. Räikkönen             McLaren

Dabei hätte ich gemeint, dass sich der Fensterinhalt bei internen Ankern erst dann verschiebt, wenn das Sprungziel nicht mehr im Sichtbereich ist!

Aber vielleicht könnte es auch daran liegen, dass ich das ganze verschachtelt in einer Tabelle ausführe!

In SelfHtml habe ich dazu folgendes gelesen:
"Manche Browser haben Schwierigkeiten, zu Ankern zu springen, die innerhalb einer Tabelle notiert sind."

Könnte mir vielleicht jemand erklären wie ich das mit Html realisieren könnte das er sich nicht jedes Mal springt obwohl Sprungziel noch im Sichtbereich ist?

Vielen Dank im Voraus

und sorry für die vielleicht etwas umständliche Erklärung

Bye

Jörg

  1. Das ist meines Wissens nach immer so, dass das Browserfenster an die Stelle springt, an der der Anker gesetzt wurde und zwar so, dass die Zeile, in der der Anker gesetzt wurde, in der obersten Zeile im Brwoserfenster steht. (Ich meine halt das, was du beschrieben hast *g*)
    Versuche das doch einfach mal so, dass du den Anker weiter nach oben schiebst. Also, dass <a name="Coulthard"> nicht direkt bei Coulthard steht, sondern bei Schumacher.
    Eine andere Lösung wüsste ich nicht!

    1. "Das ist meines Wissens nach immer so, dass das Browserfenster an die Stelle springt, an der der Anker gesetzt wurde und zwar so, dass die Zeile, in der der Anker gesetzt wurde, in der obersten Zeile im Brwoserfenster steht."

      Nein, dies habe ich bisher nur innerhalb einer Tabelle festgestellt! Wenn ich die gleiche Liste außerhalb einer Tabelle schreibe, springt der Browser (Internet Explorer 6) nicht wie wild in die oberste Browserzeile!

      Aber dennoch danke für die Hilfe! Hätte ich nicht gedacht, dass das so fix geht!

    2. So, ich nochmal! Habe jetzt zur besseren Verständigung die Datei upgeloadet! http://www.wrefor.de/f1/f1fahtea.html

      Der Vorschlag von Kai ist auch nicht sehr schlecht, aber wie gesagt, ich habe das ganze auch schon ohne solche Tricks geschafft außerhalb einer Tabelle!

      Bin für weitere Hilfe dankbar!

      1. hi

        Der Vorschlag von Kai ist auch nicht sehr schlecht, aber wie gesagt, ich habe das ganze auch schon ohne solche Tricks geschafft außerhalb einer Tabelle!

        ...sieht dir das mal (Mit Mozilla oder konqueror) auf meiner Seite an, da landet dann die Überschrift immer schön 50Pixel vom oben weg (derzeit nur die 5 Hauptabschnitte..) - sieht RICHTIG gut aus... im MSIE sieht man davon nix, weil er kein position:fixed kann. Opera ist das leider egal, er nagelt die Überschriften weiter gnadenlos unter die Decke (und danut unter die Überschrift ;(

        Grüße aus Bleckede

        Kai

        1. Hi, hab jetzt leider kein Mozilla oder konqueror! Aber ich verstehe schon was du meinst. Bloß bei mir hat das früher mal funktioniert und ich verstehe nicht wieso es das jetzt nicht mehr tut! Die direkt-Url hab ich ja gepostet! Kannst du dir ja auch mal anschauen, wenn du willst! Aber weiß auch einer was es mit der Problematik Anker setzen innerhalb von Tabellen auf sich hat?

          Übrigens: bin schon sehr froh für deine Hilfe Kai, aber das Problem muß sich anders lösen lassen!

          1. Moin!

            Hi, hab jetzt leider kein Mozilla oder konqueror! Aber ich verstehe schon was du meinst. Bloß bei mir hat das früher mal funktioniert und ich verstehe nicht wieso es das jetzt nicht mehr tut! Die direkt-Url hab ich ja gepostet! Kannst du dir ja auch mal anschauen, wenn du willst! Aber weiß auch einer was es mit der Problematik Anker setzen innerhalb von Tabellen auf sich hat?

            Also, ich kenne das von dir beschriebene und unerwünschte Verhalten so eigentlich _nur_ von Ankern. Wenn du einen Anker anspringst, erscheint der Anker ganz als oberste Zeile im Fenster - egal wodrin der Anker definiert ist.

            Die einzige Ausnahme von dieser Regel ist, wenn die Seite nach unten hin nicht mehr lang genug ist. Dann wird das untere Ende der Seite am unteren Ende des Browserfensters positioniert, und der Anker steht entsprechend tiefer.

            Das von dir beschriebene Verhalten würde ich als absolut normal bezeichnen - wenn du eine andere Lösung haben willst, mußt du die Anker anders setzen. Das wurde ja schon vorgeschlagen.

            Übrigens: bin schon sehr froh für deine Hilfe Kai, aber das Problem muß sich anders lösen lassen!

            Du kannst natürlich auch onload ein wenig im Browserfenster scrollen lassen mit Javascript (window.scrollTo() und window.scrollBy()). Ist nur die Frage, ob das besser ist, als ein paar Anker zu verschieben.

            - Sven Rautenberg

  2. hi

    das errinnert mich irgendwie an einen Vorschlag für eine CSS-Erweiterung, den ich dem W3C mal machen wollte... einen offset für Sprungmarken in Pixeln, so dass eben der Anker nicht oben Am Rand kleibt, sondern ein paar Pixel weiter oben (wenn man oben quer eine Überschrift mit position:fixed hat isses ähnlich)...

    Alternativlösung:
    <h2><a name="hm"></a>Teilüberschrift</h2>

    h2{position:relative;}
    h2 a{position:absolute;top:-50px;}

    ..damit würde die Sprungmarke 50 Piel weiter oben liegen...

    Grüße aus Bleckede

    Kai