2012-04-20 453 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