2013-10-03 46 views
0

我有一個網站有5個水平divs,他們都漂浮着:左邊,並有一個%寬度。我想要文本的左邊一個,和一個滾動條。但是,當我給它一個位置時,滾動條才顯示出來:絕對的。在jsfiddle中嘗試它。當我這樣做時,該div忽略其他4,他們脫節。我如何解決這個問題?在沒有位置的DIV內滾動:絕對?

jsfiddle>http://jsfiddle.net/QN8RS/ 添加位置:絕對;到CSS中的以下div。你會看到它的工作,但得到的div出來的地方..

#left{ 
    float:left; 
    background-color:#C00; 
    width:15%; 
    height:100%; 
    overflow:auto; 
    top: 0px; 
    bottom: 0px; 
} 
+0

嘗試添加另一個屬性'最大高度爲100%' –

回答

2

您還沒有指定的<body>的高度所以其高度計算爲auto

您指定的高度爲.main100%。這是一個百分比,因爲它的父(身體)的高度計算爲auto,所計算的高度也是auto

您指定的高度爲#left100%。這是一個百分比,因爲它的父級(.main)的高度計算爲auto,所計算的高度也是auto

由於身高爲auto,身高需要保持所有內容的高度。

既然你已經設置了overflow: auto,你只有在內容比元素高的情況下才會得到滾動條。

對html和body元素設置height: 100%,以便計算出的高度爲#left是視口的高度,而不是auto

+0

打敗我吧:(+1快速解釋! – Abhitalks

+0

完美解釋,工作就像一個魅力!!非常感謝 –

0

我認爲你正在尋找: overflow-y: scroll

Little Fiddle

+0

這迫使滾動條來呈現,但因爲是元素的高度和高度之間沒有區別內容,它不允許任何東西滾動。 – Quentin

+0

Quentin,但是當我把溢出放在汽車和絕對位置上時,它怎麼會滾動呢?你有解決方案嗎? –

0

原因是你已經在你的div .main上指定了height:100%。什麼是100%?哪位家長?

如果你指定身體的高度爲100%,那麼它將起作用。

html, body { height: 100%; } 

檢查更新的提琴:http://jsfiddle.net/QN8RS/2/