Sprungziel in PHP-Datei funktioniert nicht

Hi,
ich brauch’ mal wieder Hilfe…

Ich will einen Anker auf einer Seitre direkt anspringen. Soweit kein Thema:<a href="foo.html#bar"ist bekannt und funktioniert.

Nur befindet sich jetzt dieser Anker in einer PHP-Datei, die noch dazu mit einer Variable aufgerufen wird:

<a href="/index.php?view=news#purple_live">

Das Problem: ich lande nicht dort, wo ich will :ps:
Zwar nicht ganz oben auf der (sehr langen) Seite, aber eben auch nicht bei #purple_live, sondern irgendwo darüber.

a) woran liegt’s?
b) wie kann ich das richtige Ziel angeben?

Also auf meinen Seiten funktioniert sowas problemlos, was ja
auch ganz klar ist, weil das nicht davon abhängt, ob man PHP
benutzt oder nicht.
Ich meine, es ist aber nicht exakt spezifiziert, wie der browser das
wirklich darstellen soll, der muß das nicht zwangsläufig ganz oben
darstellen (tun aber fast alle, wenn danach noch genug Inhalt
folgt).

Bei Elementen, die per CSS positioniert sind, kann es besonders
bei älteren browsern Probleme geben, die Position der
Sprungmarke korrekt zu lokalisieren. Da kann man natürlich
erstmal kontrollieren, ob das ohne CSS funktioniert.

Ansonsten kann man das Problem natürlich leichter
nachvollziehen, wenn die URI einer auf das Wesentliche
reduzierten Testseite angegeben wird …

Ok, ich hab’ den Passwortschutz mal rausgenommen:
test.ralph-mueller-wagner.de

Hier geht es speziell um einen Link auf der Startseite: Unter “Aktuell” in dem Bereich mit den 3-spaltigen Kästen. (andere Links funktionieren zum Großteil noch nicht, ist ja auch eine Testumgebung…)
Hier mal den Link in “Ralph berichtet vom DEEP PURPLE Konzert” (mittlerer Kasten in der unteren Reihe) anklicken.

Zur Info: getestet habe ich bislang nur mit Firefox (2.0) unter Kubuntu.

Alternativ hier der Direktlink: test.ralph-mueller-wagner.de/ind … urple_live

Hum.
Es scheint so zu sein, dass zwar der Anker angesprungen wird - jedoch zu einem Zeitpunkt, zu dem noch nicht alle Elemente (insbesondere Bilder) vollständig geladen wurden.
Das Laden dieser Elemente verschiebt dann den Viewport, und der Anker “wandert” nach unten… :neutral_face:
Oder so.

Eine Lösung ist JS:window.setTimeout("self.location.href = location.hash",2000);
Damit bin ich aber noch nicht so ganz glücklich (obwohl es bestens funktioniert) - was, wenn der User kein JS erlaubt?

Andere Vorschläge?
Ein Timeout mit PHP vielleicht?

Tja, bei Opera hat es komplett mit CSS funktioniert.
Beim Firefox 2 und auch bei Konqueror gibt es bei mir bereits
das Problem, daß wohl das Ende des Textes, wo der Verweis
steht, abgeschnitten ist und somit unzugänglich wird. Bei
deaktiviertem CSS funktioniert es dann beim Firefox 2 allerdings
wie bei Opera.
Wird das CSS auf der Zielseite wieder aktiviert, wird die Position
erstmal falsch dargestellt, nach aktualisieren dann richtig

Versucht habe ich das auf Debian (ist ja eng verwandt mit
Ubuntu, wo ja eigentlich in einer aktuellen Version schon Firefox3
laufen sollte (also mit einem Gecko 1.9 jedenfalls wie Iceweasel
unter Debian).

Die auf der Seite zu findenden Fehler hängen aber wohl nicht
mit dem Problem zusammen, obgleich man sie einfach beheben
kann (object richtig statt embed verwenden).

Das CSS-Zeug ist allerdings schon recht umfangreich und
unübersichtlich, nicht gerade ideal, um da ein Problem einer
zudem noch älteren Version eines browsers zu lokalisieren ;o)

Wenn es wirklich nur an den Bildern liegt, so kannst du bei
(X)HTML einfach bei img width und height explizit für jedes Bild
angeben, dann wird gleich der Platz korrekt reserviert, auch wenn
die Bilder noch nicht verfügbar sind, dann springt auch der Text
nicht mehr beim Laden jeden weiteren Bildes ;o) js braucht man
dazu sicher nicht. Die Methode hat schon funktioniert, als es js
noch gar nicht gab…

Erstmal Danke für Deine Mühen :wink:

[quote=“hoffmann”]Tja, bei Opera hat es komplett mit CSS funktioniert.
Beim Firefox 2 und auch bei Konqueror gibt es bei mir bereits
das Problem, daß wohl das Ende des Textes, wo der Verweis
steht, abgeschnitten ist und somit unzugänglich wird.[/quote]DAS ist natürlich dumm - allerdings bei mir nicht zu reproduzieren.
Immerhin bemühe ich mich ja, das Layout skalierbar zu halten (und teste das in allen mir zur Verfügung stehenden Browsern)… hast Du evtl. einen Screenshot davon?

[quote=“hoffmann”]Versucht habe ich das auf Debian (ist ja eng verwandt mit
Ubuntu, wo ja eigentlich in einer aktuellen Version schon Firefox3
laufen sollte[/quote]Ich verwende noch hardy… KDE4 ist mir zu buggy für ein Produktionssystem.
Aber der Umstieg auf lenny steht demnächst an :wink:

[quote=“hoffmann”]Die auf der Seite zu findenden Fehler hängen aber wohl nicht
mit dem Problem zusammen, obgleich man sie einfach beheben
kann (object richtig statt embed verwenden).[/quote]Ja, ich weiß… ist direkt von Youtube kopiert.
Eigentlich will ich gar kein flash auf der HP - aber Kundenwunsch ist Gesetz :unamused:

[quote=“hoffmann”]Das CSS-Zeug ist allerdings schon recht umfangreich und
unübersichtlich…[/quote]Eigentlich habe ich gerade aus Gründen der Übersichtlichkeit die CSS-Dateien getrennt…? Für das Layout ist ausschließlich main.css zuständig (fonts.css für Schriftformatierung und colors.css für Hintergrundbilder und Farbangaben).

[quote=“hoffmann”]Wenn es wirklich nur an den Bildern liegt, so kannst du bei
(X)HTML einfach bei img width und height explizit für jedes Bild
angeben…[/quote]Leider nicht realisierbar, da sich die Inhalte (und Bilder) mit jedem Update, also monatlich, ändern.
Und da diese Änderungen zukünftig vom Kunden selber vorgenommen werden sollen, ist eine feste Angabe der Größen einfach nicht mit einem vernünftigen Aufwand umsetzbar.
Davon abgesehen will ich Inhalt und Layout sauber trennen… “width=120” ist dafür nicht geeignet.

Naja, width und height für ein Bild kannst du auch automatisch
mit PHP bestimmen und einfügen lassen. Auch kannst du das
beim Hochladen einmal ermitteln, wie den Wert des alt-Attributes
ablegen (Datei oder Datenbank) und dann ebenfalls einfügen.

Bei einem Pixelbild kann man width und height auch als
Bestandteil des Inhaltes betrachten, wohl deswegen ist es auch
gar nicht als veraltet gekennzeichnet, kann man also ruhig
verwenden. Dekorativ wird das erst, wenn man die Größe
dynamisch dem Layout anpassen will ;o) Da überschreibt das
CSS dann aber ohnehin die (X)HTML-Angaben.

Warum jetzt firefox und Konqueror die Kästen auf der Startseite
abschneiden, kann ich auch nicht genau sagen, beim firefox habe
ich aber sogar die voreingestellte Schriftgröße und minimale
Schriftgröße verändert - das Abschneiden skaliert mit. Hast du
die Höhe von dem Kasten explizit angegeben? In welchen
Einheiten? Rollbalken scheinen dann ja auch unterbunden zu sein.
Da ist zu bedenken, daß Schriftgrößen kein exaktes Maß sind,
Angaben werden vom browser da auch einfach an die
auf dem System verfügbaren Größen angepaßt.

Screenshot kann ich dir bei Bedarf zukommen lassen
(gewünschte email-Adresse per persönlicher Nachricht?)
Der Kasten mit DEEP PURPLE ist bei mir jedenfalls komplett
lesbar bis ‘Ralph hat das einmalige’ danach kommt noch eine
drittel Zeile.
Nur der Kasten zum neuen Gedicht ist komplett lesbar.

KDE4 scheint mir derzeit einfach unvollständig zu sein, was ich
da unter (K)ubuntu und OpenSuse gesehen habe, ist zumindest
für meinen täglichen Gebrauch nicht besonders geeignet ;o)
Es scheinen diverse Einstellmöglichkeiten einfach zu fehlen oder
nicht auffindbar zu sein. Was verfügbar ist, schien allerdings zu
funktionieren… die SVG-Interpretation ist allerdings skuril -
innerhalb von html:object scheint es zu laufen, bei
SVG-Dokumenten allein nicht ;o)
Auf der KDE-Seite kann man ja auch nachlesen, daß die noch am
basteln sind, kaum zu verstehen, warum das bei Kubuntu und
OpenSuse ernsthaft verwendet wird.

Für die Bilder lasse ich mir noch was einfallen.
Eventuell werden die thumbs auf eine feste Größe “geprügelt” - mal sehen.

Betreffs “Abschneiden” des Inhaltes: .teaser {float:left; height:15em; margin:1ex; padding:1ex; width:13.5em;}So habe ich es bisher definiert.
Andererseits ist Konqueror kein Browser, der für diese Seite irgendeine Rolle spielt (1 Zugriff im letzten Jahr)… FF3 ist da eher interessant (wird noch getestet).
Ach ja: es war mal ein overflow:hidden; drinnen - das habe ich aber wieder rausgenommen. Sollte jetzt also zumindest sichtbar sein - nicht schön, aber funktioniert.
Die “Feinheiten” kommen noch…

Screens einfach hier rein (damit auch andere das sehen und bei Bedarf nutzen können), ansonsten contact@i-de.biz nutzen, bitte.

@KDE4: mein Mailprogramm ist kmail - und das ist bei meinen Tests regelmäßig abgeschmiert. Ebenso amarok.
Hauptsächlich deshalb habe ich bislang drauf verzichtet… und ich denke, dass es wie bei 3.x wohl bis zur “3” hinter dem Punkt dauern wird, bis das Ding richtig rund läuft.
OpenSuSE… na ja, war nicht anders zu erwarten :stuck_out_tongue: - immerhin bietet diese Distri aber die Wahl zwischen KDE4, KDE3 und GNOME.
Kubuntu nicht… Zu allem Übel laufen dort auch die Updates nicht mehr so, wie ich mir das wünsche (z.B. ein Kernel-Update, ohne dass dabei VirtualBox und NVidia-Module berücksichtigt würden - beim nächsten Neustart fange ich dann erstmal an, die Abhängigkeiten manuell aufzudröseln…).
Alles zusammen bringt mich dann dazu, den Umstieg auf das “echte” Debian zu machen - läuft einfach wesentlich stabiler.
Aber der Zeitaufwand… geht atm nicht. Wird aber in den nächsten Wochen.

Also: danke bis hierher, ich muss da noch ein wenig dran fummeln…
Das Thema setze ich aber noch nicht auf “gelöst” - vielleicht kommt da noch was nach.

Es funktioniert noch immer nicht (richtig)… :motz:

Jetzt habe ich, entgegen meiner bisherigen Überzeugung, bei jedem Bild die jeweilige Höhe und Breite angegeben - trotzdem stimmt die Darstellung nicht.
Der Anker wird nicht richtig angesprungen, sondern ich lande nach wie vor (scheinbar?) zufällig irgendwo in der Nähe. Immer darüber, nie darunter.

Irgendwelche Ideen?

Nachtrag: nachdem ich nun mehrfach probiert habe, scheint das Problem wohl wirklich nur im FF 2.0 und im Safari (3.2.1@WinXP) aufzutreten…?