2012-04-20 167 views
9

我有一個div類中設置了以下CSS樣式:CSS最大高度和溢出汽車始終顯示垂直滾動

div.multiple_choice{ 
    border: 1px solid black; 
    max-width: 300px; 
    max-height: 200px; 
    overflow: auto; 
} 

的問題是,當裏面的文字不會強制DIV到達最大高度爲200px,垂直滾動條仍然顯示出來。我可以點擊向上和向下箭頭,但它只能將內容向上或向下移動大約一個像素或兩個像素。

這在谷歌瀏覽器(版本18.0)和Iceweasel 11

+0

需要查看測試用例。我無法在Firefox的測試頁面上驗證這一點(除非Iceweasel使用真正的Gecko老版本)。 – BoltClock 2012-04-20 18:17:55

+0

@ BoltClock'saUnicorn Iceweasel的版本與Firefox相同,因此11是最新版本。 – 2012-04-20 19:07:11

+0

@李先生:很高興知道。 – BoltClock 2012-04-20 19:09:06

回答

8

事實證明是發生,另一個CSS樣式是導致該問題:

body{ 
    line-height: 1; 
} 

任何有興趣瞭解如何以及爲什麼這會導致一個問題,可以閱讀有關line-height屬性here

+9

你的鏈接不能解釋/爲什麼'行高'會導致這個問題。 – matthewpavkov 2012-04-20 18:53:43

+0

@nuclearpenguin,所以_how_線條高度對滾動有什麼影響?有沒有什麼在您的鏈接 – Izkata 2013-02-04 15:30:53

+2

我也遇到過這個問題。在div裏面的元素上設置'line-height'爲'normal'來修復它。 – 2014-11-07 15:54:41

6

我有遇到這樣的問題。但我解決了這個使用以下CSS樣式:

div.yourcontainer{overflow-y:auto;} 

如果容器高於最大高度,將顯示垂直滾動條。

0

我也有這個問題,使用Bootstrap和導航。它發生的原因是引導程序將導航標籤中的li定義爲:.nav-tabs > li { margin-bottom:-1px; }。爲了解決這個問題,還必須做到:

.nav-tabs > li:last-child { 
    margin-bottom:0; 
} 

沒有設定最後一子,下面的例子將始終顯示滾動,不管有多少內容是在列表中:

<ul class="navs nav-tabs nav-stacked" style="max-height:80px;overflow:auto;"> 
    <li></li> 
    ... 
</ul> 
1

今天早些時候我遇到了這個bug。在我的情況下,子元素的列表顯示:內聯塊,而不是顯示:塊。切換到顯示:阻止我在截斷div中的子元素列表修復了我的問題。

4

我遇到了這個問題,並且我發現在子元素上有position: relative導致了問題。顯然,這不可能是每個人的解決方案,特別是如果使用position: absolute,但對我來說它工作。

0

我不得不試圖包裝的列表(柔性列)在一個div反應的組分時這個問題,我解決它通過每個列表項內改變元件的裕量爲0。

的方法來解決此對我來說,是檢查列表項(可能在OP中的每個<li>),並查看哪些樣式使div認爲每個列表項大於人眼可見的項。

這裏是我的項目列表項中上的圖標檢查流氓保證金的例子: Example of rogue margin

解決辦法是設置圖標的風格有0垂直邊距,儘管我應用程序,我只是做了所有的邊距0,並添加了一些填充權。

Fixed rogue margin example