液体布局:避免由于垂直滚动条而导致的体宽变化

时间:2012-02-28 15:12:00

标签: html css

我已为我的网站实施了液体布局。我已将body标签的宽度设置为100%。

<html>
<head>
</head>

<body>
    <div id="container">
        some content
    </div>
</body>

body
{
   margin: 0;
   padding: 0;
   width: 100%;
}

对于某些页面,会显示垂直滚动条。因为身体标签宽度减少了16px。我需要设置体宽,使滚动条的显示不会影响它 我试过跟随,但它不适用于FF9。 :

  
 body{
    width: -moz-calc(100% - 16px);
}
  

任何人都可以建议一种方法来实现这一目标吗?

3 个答案:

答案 0 :(得分:5)

解决此问题的一种方法是确保始终存在滚动条。然后,您可以放心地对页面进行样式设置,确保它们不会左右移动。

html,body
{
 height:101%;
}

你也可以这样做:

html {
       overflow-y: scroll;
}

(我不认为溢出方法适用于Opera)

答案 1 :(得分:0)

在问这个问题时这可能是不可能的,但是如今,您可以这样做:

body {
    width: 100vw;
}

唯一的潜在缺点是滚动条出现时,最右边的16px会被滚动条覆盖,但是如果您的项目符合以下任何条件,则实际上可能需要这样做:

  • 您真的不希望页面垂直溢出,除非有足够的内容来填充空间,或者您不喜欢看似不必要的滚动条的外观
  • 最右边的16个像素没有覆盖任何重要内容,并且每页上都有相同的背景图像,需要根据视口宽度进行缩放,并且在所有页面上看起来都是相同的

答案 2 :(得分:-2)

你不应该使用calc这么左右。它未在Chrome中实施,

如果宽度设置为100%,则容器不会受到垂直滚动条的影响。它每次都是100%宽度。无论是否有滚动条,它都会在每次100%的视口中填充。