【发布时间】:2011-07-04 21:39:21
【问题描述】:
我有一个居中的 div 容器(通过 margin-left:auto 和 margin-right:auto),加载时页面设计看起来很好...... 在这个 div 下面还有另一个隐藏的,它会根据用户请求显示。 但是当这种情况发生时,浏览器滚动会出现并弄乱我的设计,因为居中的 div 也会向左移动几个像素(因此它可以再次位于中心)。
这种行为可以停止吗?
替代解决方案是添加overflow-y:scroll,但我发现不是所有浏览器都支持overflow-y,我找不到哪些浏览器... 有人可以发布一个链接,我可以在其中查看 css3 功能的浏览器支持列表吗?
【问题讨论】:
-
为什么会出现问题?因为下面的容器不是以相同的方式居中?
-
如果我理解正确,在您的默认状态下,您没有窗口滚动条,但是当隐藏的 div 可见时,它会增加页面长度并引入滚动条。你认真考虑这“搞砸了你的设计”吗?
overflow-y是你最好的,也可能是唯一的选择,但老实说,这就是网络应该如何运作的:人们期望事物在与他们交互时会发生变化,并且出现的滚动条是一个强烈的视觉提示,表明某事 已经改变了。 -
@will 你会正确理解它,但是当我问“如何阻止这种行为”时,我并不是要阻止滚动条出现(你可能认为我的意思是,因为你慷慨地解释了它到网络是如何工作的),但我想知道这种 div 容器的重新设置是否可以停止。
-
@Orbit 这是一个问题,因为我有一些基于用户交互定位 div 的 javascript...这是一个很长的故事,但关键是这几个像素成为一个问题...跨度>
-
如果您可以链接,最简单的方法是,我想我明白,但我不确定。您也许可以使用 jQuery 将 div 定位为与事件侦听器中的隐藏组件相同的左/右位置。
标签: html css positioning