Scrollbalken und Breite eines Textes
Onkel Hannes
- css
Halo, liebes Forum!
Ich habe mehrere zusammengehörende Seiten, in denen sich der Inhalt mittig zentriert in einem eignen div mit eigener Hintergrundfarbe befindet. Links und rechts davon ist es also sozusagen "leer".
Sobald nun der Inhalt durch langen Text länger als der Viewport wird, kommt rechts logischerweise ein vertikaler Scrollbalken ins Bild. (Im FF, im IE ist er ja von Anfang an da, ob er nun gebraucht wird oder nicht.)
Durch das Erscheinen des Scrollbalkens ändert sich jetzt aber auch die Breite des divs, in dem der Inhalt steht. Hier das CSS des divs, in dem der Text steht:
background:rgb(255,255,255);
width:auto;
min-width:600px;
max-width:70%;
min-height:100%;
border-right:1px solid rgb(230,230,230);
border-left:1px solid rgb(230,230,230);
margin:0 auto;
Blättert man jetzt zwischen Seiten, die länger sind als der Viewport und Seiten, die das nicht sind, hin und her, springt somit durch das Erscheinen und Verschwinden des Scrollbalkens das div dauernd, d.h., es wird dauernd breiter/schmäler.
Wie mach ich es am Besten, daß bei Erscheinen eines vertikalen Scrollbalkens nur der leere Raum links und rechts des Inhalts kleiner wird, das div mit dem Text aber gleich breit und an gleicher Stelle stehen bleibt?
Danke im Voraus
Onkel Hannes
Hi
Ich habe mehrere zusammengehörende Seiten, in denen sich der Inhalt mittig zentriert in einem eignen div mit eigener Hintergrundfarbe befindet. Links und rechts davon ist es also sozusagen "leer".
Sobald nun der Inhalt durch langen Text länger als der Viewport wird, kommt rechts logischerweise ein vertikaler Scrollbalken ins Bild. (Im FF, im IE ist er ja von Anfang an da, ob er nun gebraucht wird oder nicht.)
Durch das Erscheinen des Scrollbalkens ändert sich jetzt aber auch die Breite des divs, in dem der Inhalt steht. Hier das CSS des divs, in dem der Text steht:
background:rgb(255,255,255);
width:auto;
min-width:600px;
max-width:70%;
Das ist ein unlogischer Mix. auto besagt 100%
logisch wäre
wenn width relative Einheit, dann min und max absolute Einheit.
wenn width absolute Einheit, dann min und max relative Einheit.
typisch
width: 600px; min-width:50%; max-width:100%;
width: 100%; min-width:200px; max-width:800px;
min-height:100%;
border-right:1px solid rgb(230,230,230);
border-left:1px solid rgb(230,230,230);
margin:0 auto;
>
> Blättert man jetzt zwischen Seiten, die länger sind als der Viewport und Seiten, die das nicht sind, hin und her, springt somit durch das Erscheinen und Verschwinden des Scrollbalkens das div dauernd, d.h., es wird dauernd breiter/schmäler.
Da die Breite des Scrollbalken Privatsache ist, bleibt dir nur übrig, den Scrollbalken immer zu zeigen
body:overflow:scroll
Anderseits fragt sich, ob dies nicht eher ein Designer-Problem statt ein User-Problem darstellt.
mfg Beat
--
Woran ich arbeite:
[X-Torah](http://www.elcappuccino.ch/cgi/tok.pl?extern=1-pub-com3306-1)
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Hallo!
Da die Breite des Scrollbalken Privatsache ist, bleibt dir nur übrig, den Scrollbalken immer zu zeigen
body:overflow:scroll
Dann habe ich im IE rechts 2 (!) Scrollbalken, einen, der nie zur Verwendung kommt, das ist der ganz rechte, und links davon einen, in dem bei Bedarf der Scrollbalken ist.
Mit html:overflow:scroll
wird dieses Problem gelöst. Allerdings habe ich im FF bei dieser Lösung jetzt auch horizintal einen Scrollbalken, die Seite schaut jetzt _noch_ blöder aus. :-(
Also wenn es keine bessere Möglichkeit gibt, als die Scrolleiste IMMER zu haben, egal, ob benötigt oder nicht, gibts wenigstens die Möglichkeit, das nur vertikal zu haben, aber nicht horizontal?
Grüße
Onkel Hannes
Anderseits fragt sich, ob dies nicht eher ein Designer-Problem statt ein User-Problem darstellt.
mfg Beat
Hi,
zitiere bitte vernuenftig!
Also wenn es keine bessere Möglichkeit gibt, als die Scrolleiste IMMER zu haben, egal, ob benötigt oder nicht, gibts wenigstens die Möglichkeit, das nur vertikal zu haben, aber nicht horizontal?
overflow-x verstehen die meisten aktuellen Browser auch.
Darueber hinaus gaebe es noch die Moeglichkeit, dem Inhalt eine Mindesthoehe von 100% zu geben, und ueber einen zusaetzlichen Pixel padding/Border ebenfalls einen Scrollbalken zu erzwingen, der sich dann auf Seiten mit wenig Inhalt minimal bewegen laesst.
MfG ChrisB
OK, ich frage anders:
Ist Folgendes möglich? ==>
* Ein Bereich, in dem sich der komplette Seiteninhalt befindet,
* dieser Bereich soll mittig zentriert sein, links und rechts etwas Platz, andere Farbe als der Platz links und rechts,
* die Breite des Bereichs soll FLEXIBEL sein UND
* Wenn der Inhalt länger wird als der Viewport, dann soll sich besagter Bereich bei Erscheinen der vertikalen Scroll-Leiste NICHT ändern. Also NICHT breiter oder schmäler werden und die Ränder sollen sich NICHT auf eine Seite verschieben.
Geht das???
Onkel Hannes
Das ist ein unlogischer Mix. auto besagt 100%
nein: 100% != auto
in kombination mit margin, paddung und border kann es durchaus sinnvoll sein, "width: auto" zu verwenden und max-width < 100% anzugeben
Halo,
... in denen sich der Inhalt mittig zentriert in einem eignen div mit eigener Hintergrundfarbe befindet.
Wie mach ich es am Besten, daß bei Erscheinen eines vertikalen Scrollbalkens nur der leere Raum links und rechts des Inhalts kleiner wird, das div mit dem Text aber gleich breit und an gleicher Stelle stehen bleibt?
Wie bekomme ich ein Quadrat kreisrund? Wenn es rund ist, ist es kein Quadrat mehr.
Wenn der _linke_ Rand variabel ist, _kann_ das div nicht mehr auf derselben Stelle stehen.
Erzwinge doch den Scrollbalken, dann ist Ruh'.
Kalle