Hallo Raphael,
ging nicht davon aus, dass jemand den quellcode benötigt wegen eines
attributs ;-) aber bitte
Man weiß nie, was sich da alles beeinflußt. Und zuviele Informationen schaden
nicht unbedingt.
Also!
Diese Dateien werden in meinem Mozilla wie folgt angezeigt:
http://www.bestguide.org/test1.html (overflow:auto)
Man sieht aus irgendeinem Grund nur die Hintergrundtextur. Auch keinerlei
Veränderung bei Verkleinerung des Browserfensters. Weswegen das so ist,
weiß ich nicht.
http://www.bestguide.org/test2.html (scroll:auto)
Seite wird sehr gut angezeigt. Bei Verkleinerung des Browserfensters erhält
erst das Browserfenster, bei weiterer Verkleinerung dann auch das div
Scrollbalken. Bei beiden mmer dann wenn der Inhalt nicht mehr in die
Anzeigefläche paßt. Also wie erwartet. Ich denke das falsche scroll-Attribut
wird einfach ignoriert.
http://www.bestguide.org/test3.html (keine Angabe)
Dasselbe Verhalten wie bei Nummer 2. Was mich zu obiger Vermutung gebracht
hat, dass das falsche scroll-Attribut ignoriert wird.
overflow wird in den diversen Browsern immer noch recht buggy unterstützt
oder liefert irgendwelche unerwarteten Ergebnisse. Am sichersten fährt man,
wenn man für globale Angaben wie body oder html es wegläßt und den Browser
in seiner standardisierten um vom Nutzer gewohnten Verhaltensweise läßt.
Es ist nicht ganz klar, was Du nun willst. Ich habe etwas mit den
verschiedenen Zuständen von overflow rumexperimentiert, um Deine
Problembeschreibungen nachvollziehen zu können.
1 Du klagst über einen unnützen Scrollbalken.
1.1 Ich erhalte sowas nur, wenn ich dem body die Eigenschaft overflow:scroll
zuordne. Laut SELFHTML (1) soll das auch so. Dann soll der Webbrowser auf
jeden Fall Scrollbalken anzeigen, wenn ich das richtig verstehe. In
Mozilla und Opera sind das dann nicht Scrollbalken am Rande des
Anzeigebereiches, sondern im Dokument. Das erklärt sich dadurch, daß
das body-Element nicht, wie die meisten erwarten über den ganzen
Anzeigebereich geht, sondern so groß ist, wie sein Inhalt. Der
Anzeigebereich wird durch html definiert. Der IE6 macht es so, wie man es
intuitiv erwarten würde, aber trotzdem falsch.
1.2 Sonderfall IE6:
Bei keiner Angabe von overflow zeigt er einen unnützen Scrollbalken am
rechten Rand. Das meinst Du wahrscheinlich. Internet Explorer eben. Das
Ding ist kaputt. Ist aber auch schon bekannt (2).
2 Du klagst über ein "Zusamenhauen" des gesamten Layouts unter Mozilla bzw.
Netscape
Siehe 1.1 - es liegt daran, daß das body-Element eben nicht die ganze
Anzeigefläche einnimmt. Da müßte man entweder mit overflow an html
rumexperimentieren oder body umdefinieren. Schwierig sowas. Ich glaube
so ganz hat noch niemand, selbst beim W3C niemand, das Box Model und die
verschiedenen Zustände von display begriffen. Aber ist nur eine Vermutung.
Was hilft Dir das nun jetzt? Wenn ich Dein Eingangsposting lese, willst Du,
dass einfach nur, daß dieser Scrollbalken im IE6 wegkommt. Da kann man jetzt
verschiedene Kombinationen ausprobieren, die aber alle unerwünschte
Nebeneffekte haben:
keine Angabe (Unnützer Scrollbalken im IE)
overflow:auto (Mozilla zeigt nichts mehr an)
overflow:scroll (Es werden auf jeden Fall Scollbalken angezeigt)
overflow:visible (Beim Verkleinern des Fensters gibt es keine Scrollbalken mehr)
overflow:hidden (Bug im Mozilla, siehe #foot
beim Verkleinern keine Scrollbalken mehr)
Wie Du jetzt entscheidest, bleibt Dir überlassen. Ich würde jede Variante
ausschließen, bei denen es beim Verkleinern des Fensters keine Scrollbalken
mehr gibt; diese sind ein zu wichtiges Element des Benutzers. Die
Variante, dass auf jeden Fall Scrollbalken angezeigt werden wirst Du
wahrscheinlich konsequent ausschließen. Daß ein wichtiger Browser nichts
anzeigt ist auf ein dickes NO. Also bleibt nur die Variante mit dem
Nebeneffekt, daß im IE ein harmloser Scrollbalken ist. Die harmloseste
Variante also.
Sorry.
An Deiner Stelle wäre ich jetzt so genervt, daß ich eine Änderung des
Layoutkonzeptes in Betracht ziehen würde. Was Du eventuell sowieso tun
solltest, siehe Dein Layout im Opera.
Ansonsten, wenn Du noch Lust hat, kannst Du noch etwas rumexperimentieren.
Ich hätte da ein paar Vorschläge:
- overflow auf html
- overflow auf body bzw. html in schlichten Testfällen mit "normalen" Inhalt.
- overflow auf body bzw. html in nicht ganz so schlichten Textfällen mit
absolut positionierten Inhalten. - overflow auf body bzw. html in nicht ganz so schlichten Textfällen mit
relativ positionierten Inhalten. (Dein Problem)
Systematische Vorgehensweise liefert wahrscheinlich ein paar Erkenntnisse
über overflow und deren Umsetzung in den diversen Browsern. Vielleicht hast
Du Lust einen Artikel für den SELF-Raum zu schreiben? ;-)
(1) http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#overflow
(2) http://www.xs4all.nl/~ppk/css2tests/intro.html
- Tim
Ich weiß nie, was für eine Signatur ich nehmen sollte.