Zum Inhalt springen

Scrollbalken

Erstellt am 27. April 2006 · 7 Antworten · letzte Antwort am 4. Mai 2006

Tags: Frage

melle ·

Hi!

Ich habe in der Bildschirmmitte ein in seiner Breite fixes DIV-Element für meinen Seiteninhalt. Die Höhe ist passt sich dem Inhalt an. Nun würde ich gerne - wenn der Seiteninhalt über den unteren Bildschirmrand hinausgeht - einen vertikalen Scrollbalken einbasteln. Dieser soll aber auch wirklich nur sichtbar sein, wenn der Inhalt auch über den unteren Rand hinaus geht. Einen horizontalen Scrollbalken will ich nicht haben, Text soll also automatisch umgebrochen werden, wenn er die Breite des DIVs überschreitet.

Gibts dafür eine Lösung?

melle ·

hab ich schon versucht, aber da ändert sich nichts - sind also gar keine Scrollbalken zu sehen.

Hab jetzt rausgefunden, dass man den horizontalen Scrollbalken mit "overflow-x: hidden;" ausblenden kann - aber ne richtige Lösung is das auch net 🙁 ich verzweifel noch!

hoffe ihr könnt mir helfen

viele grüße,
melanie

miwolfram ·
melle schrieb

Ich habe in der Bildschirmmitte ein in seiner Breite fixes DIV-Element für meinen Seiteninhalt. Die Höhe ist passt sich dem Inhalt an. Nun würde ich gerne - wenn der Seiteninhalt über den unteren Bildschirmrand hinausgeht - einen vertikalen Scrollbalken einbasteln.

Wie soll das funktionieren?

Overflow macht nur Sinn bei Divs wo eine Höhe oder Breite eingestellt ist.
Ein Inhalt kann nicht über ein Div "hinausragen" wenn keine Höhe eingestellt ist da sich das Div ja automatisch seinem Inhalt anpasst.
Gibst du eine Höhe an - egal ob in Prozent oder Pixel - funktionierts auch mit dem "overflow: auto"!

"overflow-x" würde ich nicht benutzen da dies nur der IE, der Konqueror und Safari kennen!

melle ·

ich habe nun eine fixe Höhe eingestellt, aber trotz overflow:auto klappt es nicht.

So schauts aus:

#Content		{ visibility: visible; 
		position: absolute; 
		z-index: 4; 
		top: 142px; 
		left: 180px; 
		width: 583px;
		max-width: 600px;
		height: 100%-142px;
                                overflow: auto;
                               }

Scrollbalken sind beim DIV keine zu sehen, es wird wie vorher auch schon der Standard-Browser-Scrollbalken angezeigt. Ne Idee warum das nicht geht?

LG melanie

just2b ·

glaub nicht dass das geht: height: 100%-142px;
nimm eher sowas mal height:400px;

lg georg

miwolfram ·
just2b schrieb

glaub nicht dass das geht: height: 100%-142px;

Das geht sogar sicher nicht.
*leider* - wäre schön - ist aber auch nicht im CSS3-Standard (soweit bisher ersichtlich) drin.

@melle:
Das sollte reichen für ein mittig positioniertes Div mit overflow:auto (aber eine dynamische Höhe bekommst du damit natürlich nicht!):

body {
	margin: 0;
	padding: 0; 
	background-color: #FFFFFF;}

#document {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 660px;
	height: 400px;
	margin-top: -200px;
	margin-left: -330px;
	overflow: auto;
	text-align: left;
	background-color: blue;
}

Wichtig ist dass der Doctype richtig gesetzt ist (egal ob XHTML oder valides HTML 4.0 - funktioniert beides) und du natürlich alles in ein DIV namens "document" schmeisst - logisch.
Ausserdem musst du natürlich die Margins deiner Breite/Höhe anpassen.

MEller ·

Habe ich gerade probiert.

Der Text wird im Content angezeigt und sauber umgebrochen. Wenn er die höhe sprengt erscheit ein Rollbalken.

<!-- ###DOKUMENT### begin -->
<div id="logo">###LOGO###</div>
<div id="schattenbox">
  <div id="navtop"><span>###NAVTOP###</span></div>
  <div id="content"><span>###CONTENT###</span></div>
</div>
<!-- ###DOKUMENT### end -->

Sie Schattenbox ist zentriert auf der Seite.

Das betreffende CSS für den Content ist.

#content {
height: 340px;
background-color: #F0F0F0;
overflow: auto;
}

Ist das die Lösung - hilft das weiter?