滚动条不隐藏
我最近偶然发现了一个与浏览器滚动条相关的非常有趣的行为。 这里是链接来演示这个:http://jsfiddle.net/5L7tyswh/5/
HTML:
<div class='container'>
<div class='fix' />
</div>
CSS:
body {
margin: 0;
}
.container {
position: absolute;
overflow: auto;
width: 100%;
height: 100%;
max-height: 400px;
max-width: 400px;
}
.noscroll {
overflow: hidden;
}
.fix {
width: 400px;
height: 400px;
background-color: green;
}
所以情况基本上是这样的:我想要一个固定大小的div,如果窗口小于最小值,它可以滚动。 我明确希望滚动条出现在'div'中,所以我创建了一个充当'scrollpanel'的容器。 到现在为止还挺好。
当你将窗口缩小到足以让滚动条出现,然后再次放大时,就会出现奇怪现象。 会发生什么是滚动条不应该隐藏,因为他们应该(至少我认为这是合乎逻辑的)。 我不知道它是一个错误还是一个特性,但是我的技巧是关于前者。 我唯一的解释是,垂直和水平滚动条阻止对方消失。
解决方法是评论的JavaScript,如果取消注释,则滚动条按照其意图行事。
任何人都可以解释一下吗
更新:
目前为止我只能在Chrome中重现它。 它适用于IE11和Firefox。
看起来像Chrome的一个bug或特性;)您可以通过在css中使用@media指令来防止Chrome中没有javaScript和额外类的行为
@media screen and (min-width: 400px) {
.container {
overflow: hidden;
}
}
这可以防止窗口大于400像素时出现滚动条。 适用于所有(最近)的浏览器。
链接地址: http://www.djcxy.com/p/88417.html下一篇: Div growing outside of width constraint despite overflow:auto