CSS - 如何防止水平滚动?

时间:2012-11-13 20:37:59

标签: css css-float

这个问题可能有一个简单的解决方案。

我设计了一个并排两列的网站。一切都是固定的(菜单栏和左栏),右栏除外。

这是故意的,因为我只想要滚动右列,它将保存页面的可读内容。所以一切都很好,对吧?

不完全是,左列向左浮动,右列也浮动有足够大的左边距,以便在加载时正确地坐在页面中。

然而,当屏幕水平太小时,用户可以向左和向右滚动,同时移动第二列,甚至在我固定的第一列下方。这就是我想要阻止的。

如何让第二列垂直滚动但不能水平移动?

这是css的snipet:

#main-content {float: left; margin: 100px 0 0 0; background: rgba(128,127,128,0.9); padding: 15px 25px 15px 15px; width: 500px; -moz-border-radius: 20px; -webkit-border-radius: 20px; border-radius: 20px;}
#button-glue {float: left; position: fixed; padding: 0 25px 15px 0px; width: 525px;}
#button{
    float:right; margin: 5px -20px 0 0;
}
#button a {
    background:url(../images/button.png) 
    no-repeat;
    display:block; /* Necessary, since A is not a block element */
    width: 167px;
    height: 58px; 
}
#button a:hover {
    background:url(../images/buttonhover.png) no-repeat;
    width:167px;
    height:58px;
}
.right {float:right; margin: 0 0 5px 25px;}
#secondary-content {float: right; margin: 100px 0 15px 569px; background: rgba(128,127,128,0.9); padding: 20px; background: rgba(128,127,128,0.9); width:405px; -moz-border-radius: 20px; -webkit-border-radius: 20px; border-radius: 20px;}

谢谢!

2 个答案:

答案 0 :(得分:12)

overflow-x:hidden

不允许元素上的滚动条隐藏任何悬停的内容。

答案 1 :(得分:0)

我希望我能正确理解你的问题,但为什么你可能不需要使用浮动。

Float是向左或向右推动一个元素,我觉得它非常方便但是对于你的解决方案你不需要它。相反,您可以在辅助内容div位置使用:绝对。而不是使用边距,使用顶部,左边更容易。因此,如果您想将辅助内容div放在正确的位置,您可以使用:

position: absolute;
top: 100px;
left: 569px;

我建议您对其他元素执行相同操作,并使用边距在元素周围创建空间。