Links zu Absätzen
Thomas
- html
0 Markus0 Sönke Tesch0 Thomas
0 MudGuard0 Thomas
0 Anker in XHTML
Tim Tepaße
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
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.
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.
- 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: <>.
- 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
Hey!
- 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?)
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
Hi,
Bei mir funktoniert das nicht und das kann zwei Gründe haben.
Nein, es kann viel mehr Gründe haben.
- 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.
- 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
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.
- möglicher Grund:
Dein Browser hat einen Bug
Wie gesagt der gleiche Code funktioniert in meinem Browser (ohne divs und php).
- 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?)
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.
- 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
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
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