Thomas: Links zu Absätzen

Hallo!

Es gibt ja die Möglichkeit direkt zu einem bestimmten Absatz in einem HTML-Dokument zu springen. Und zwar springt man mit <a href="datei.html#absatz"> zu dem in datei.html mit <a name="absatz"> markierten Absatz.

Bei mir funktoniert das nicht und das kann zwei Gründe haben. Mich würde jetzt interessieren woran es liegt und was es für eine Lösung gibt, doch zu einem Absatz in einem Dokument zu springen.

1. möglicher Grund:
Dokumente komplett mir CSS formatiert und in div-layer gegliedert, wobei nur ein div-block gescrollt werden kann, alle anderen bleiben wo sie sind, wenn gescrollt wird. (Ich will in dem Block der gescrollt wird an einen bestimmten Absatz springen.)

2. möglicher Grund:
Meine HTML-Dokumente haben die Endung .php, weil ich ein paar php-Befehle eingebaut habe. Ist das das Problem?

Ich würde mich freuen, wenn mir jemand sagen könnte, was der Grund ist und wie ich das Problem löse.

thomas

  1. hey,
    ich würde das ganze über javascript lösen...
    hier gibt es ne Funktion wie scrollto().
    genaueres kann ich Dir leider auch nicht sagen, da ich es noch nicht getestet hab.
    mfG,
       Markus.

  2. Es gibt ja die Möglichkeit direkt zu einem bestimmten Absatz in einem HTML-Dokument zu springen. Und zwar springt man mit <a href="datei.html#absatz"> zu dem in datei.html mit <a name="absatz"> markierten Absatz.

    1. möglicher Grund:
      Dokumente komplett mir CSS formatiert und in div-layer gegliedert, wobei nur ein div-block gescrollt werden kann, alle anderen bleiben wo sie sind, wenn gescrollt wird. (Ich will in dem Block der gescrollt wird an einen bestimmten Absatz springen.)

    Ja, mit hoher Wahrscheinlichkeit. Offensichtlich hast Du Deine Seite so dermaßen verbockt, daß der Browser nicht mehr weiß, wo vorne und hinten ist. Tipp zur Läuterung: <>.

    1. möglicher Grund:
      Meine HTML-Dokumente haben die Endung .php, weil ich ein paar php-Befehle eingebaut habe. Ist das das Problem?

    Nein. Grundsätzlich interessiert den Browser die URL überhaupt ganz und gar nicht; er richtet sich (meistens) nach der Typangabe, die der Server ihm zu den Daten liefert ("Content-Type").

    Gruß,
      soenk.e

    1. Hey!

      1. möglicher Grund:
        Ich habe die Dokumente komplett mit CSS formatiert und in div-layer gegliedert, wobei nur ein div-block gescrollt werden kann, alle anderen bleiben wo sie sind, wenn gescrollt wird. (Ich will in dem Block der gescrollt wird an einen bestimmten Absatz springen.)

      Ja, mit hoher Wahrscheinlichkeit. Offensichtlich hast Du Deine Seite so dermaßen verbockt, daß der Browser nicht mehr weiß, wo vorne und hinten ist. Tipp zur Läuterung: <>.

      Was meinst du mit <>? Ich kann im Moment nichts damit anfangen.

      thomas

      PS: (Ich würde nicht sagen, dass ich die Seiten großartig verbockt habe. Willst du dir denn Quellcode mal ansehen?)

      1. Offensichtlich hast Du Deine Seite so dermaßen verbockt, daß der Browser nicht mehr weiß, wo vorne und hinten ist. Tipp zur Läuterung: <>.

        Was meinst du mit <>? Ich kann im Moment nichts damit anfangen.

        Daß ich gepennt habe ;) http://www.delorie.com/web/lynxview.html war gemeint.

        PS: (Ich würde nicht sagen, dass ich die Seiten großartig verbockt habe. Willst du dir denn Quellcode mal ansehen?)

        Rück einfach die Adresse raus, irgendwer wird dann schon reinschauen. Ohne Code läuft sowas immer auf Rätselraten hinaus.
        Es kann natürlich auch sein, daß Dein Browser das Scrollen des <div>s zusammen mit dem Anker einfach nicht richtig beherrscht: Möglicherweise gilt ein Anker schon dann als sichtbar, wenn alle darüber liegenden Elemente sichbar sind - daß Dein <div>-Element nicht alles anzeigt, wird nicht berücksichtigt.

        Gruß,
          soenk.e

  3. Hi,

    Bei mir funktoniert das nicht und das kann zwei Gründe haben.

    Nein, es kann viel mehr Gründe haben.

    1. möglicher Grund:
      Dokumente komplett mir CSS formatiert und in div-layer gegliedert, wobei nur ein div-block gescrollt werden kann, alle anderen bleiben wo sie sind, wenn gescrollt wird. (Ich will in dem Block der gescrollt wird an einen bestimmten Absatz springen.)

    Nein, das ist kein Problem.

    1. möglicher Grund:
      Meine HTML-Dokumente haben die Endung .php, weil ich ein paar php-Befehle eingebaut habe. Ist das das Problem?

    Beim Browser kommt vom PHP nichts an, das KANN also kein Grund sein.

    3. möglicher Grund:
    Dein Browser hat einen Bug

    4. möglicher Grund:
    Dein Code könnte falsch sein (z.B. angesprungene Marke existiert nicht wg. Tippfehler...)

    ...

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      Bei mir funktoniert das nicht und das kann zwei Gründe haben.

      Nein, es kann viel mehr Gründe haben.

      Da es aber in dem Browser mit genau dem selben Code nur ohne die beiden unteren Sachen funktioniert, habe ich es auf diese beiden Sachen eingegrenzt, aber möglich, dass es auch noch einen anderen Grunf hat.

      1. möglicher Grund:
        Dein Browser hat einen Bug

      Wie gesagt der gleiche Code funktioniert in meinem Browser (ohne divs und php).

      1. möglicher Grund:
        Dein Code könnte falsch sein (z.B. angesprungene Marke existiert nicht wg. Tippfehler...)

      Habe ich eigentlich überprüft.

      ciao

      (PS: Willst du dir den Quellcode kurz mal ansehen?)

  4. Hallo Thomas,

    Und zwar springt man mit <a href="datei.html#absatz"> zu dem in datei.html
    mit <a name="absatz"> markierten Absatz.

    Es gibt noch mehr Möglichkeiten, zu denen ich gleich komme.

    1. möglicher Grund:
      Dokumente komplett mir CSS formatiert (...)

    Du sagst nicht viel mehr zu Deinen Testbedingungen oder postet gar Quelltext;
    deswegen kann ich nur raten.

    Deine Verwendung von CSS läßt darauf schließen, daß Du Dich etwas mehr mit
    der 'moderneren' Standards beschäftigst. Gehe ich recht in der Annahme, daß
    Dein HTML-Dokument dann auch einen moderneren Dokumententyp, wie
    bespielsweise XHTML 1.1?

    Wenn ja, dann mag es daran liegen, daß das name-Attribut in diesem Standard
    nicht mehr enthalten ist (1). Ab XHTML 1.1 dient das ID-Attribut als
    sogenannter 'fragment identifier' und damit auch als das, was in vorherigen
    Versionen der Anker war. Sprich man kann (in jedem beliebigen Element) eine
    ID definieren und diese dann als Anker anspringen.

    Ein Beispiel:

    <p id="absatz-3-2-1">
        ...
      </p>

    kann dann problemlos durch

    <a href="absatz-3-2-1">...</a>

    angesprungen werden.

    (1) Das name-Attribut wurde schon in XHTML 1.0 als deprecated gesetzt und
        anscheinend werden in XML-Dokumenten für Verweise auf Anker das
        ID-Attribut bevorzugt. Zu mehr Informationen siehe diesen Abschnitt
        zu Kompabilitätsproblemen im Standard:
        http://www.w3.org/TR/xhtml1/#C_8

    • Tim
    --
    tft-bm: ID Anker
    1. Hi,

      Wenn ja, dann mag es daran liegen, daß das name-Attribut in diesem Standard
      nicht mehr enthalten ist (1). Ab XHTML 1.1 dient das ID-Attribut als
      sogenannter 'fragment identifier' und damit auch als das, was in vorherigen
      Versionen der Anker war.

      Kleine Ergänzung: ab HTML 4.01 (in 3.2 ist es noch nicht enthalten) dient das id-Attribut auch schon diesem Zweck:

      siehe [http://www.w3.org/TR/html401/struct/global.html#adef-id], wo es heißt (Zu beachten: Punkt 2 der Liste):

      The id attribute has several roles in HTML:

      * As a style sheet selector.
          * As a target anchor for hypertext links.
          * As a means to reference a particular element from a script.
          * As the name of a declared OBJECT element.
          * For general purpose processing by user agents (e.g. for identifying fields when extracting data from HTML pages into a database, translating HTML documents into other formats, etc.).

      Möglich ist die Verwendung des id-Attributs also schon länger...

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    2. Hi Tim,

      <p id="absatz-3-2-1">...</p>
      kann dann problemlos durch
      <a href="absatz-3-2-1">...</a>
      angesprungen werden.

      "The requested URL absatz-3-2-1 was not found on this server."

      -> <a href="#absatz-3-2-1"> ;-)

      (1) Das name-Attribut wurde schon in XHTML 1.0 als deprecated gesetzt und
          anscheinend werden in XML-Dokumenten für Verweise auf Anker das
          ID-Attribut bevorzugt

      Jupps, möge das doch bitte jemand Opi NS4 erzählen.

      Grüße,
       Roland

      --
      http://my.opera.com/dev/articles/20030519/
      http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
      selfcode = ss:| zu:} ls:} fo:} de:> va:} ch:| sh:) n4:& rl:| br:< js:{ ie:{ fl:{ mo:|