为什么滚动条影响固定/绝对元素的宽度而不影响静态/相对宽度

时间:2016-06-16 17:33:46

标签: html css macos css3 momentum

我们注意到OSX下所有浏览器都有一种奇怪的行为。当使用滚动条"自动显示" -feature vs."始终可见" (参见OSX设置 - >一般)。

如果它切换到"总是",100%的固定/绝对元素的宽度比切换到"自动"的宽度少15px。

我基本上可以理解"总是"滚动条使用固定空间而不是"自动"滚动条是某种覆盖在内容上的。

但为什么这件事对此非常重要

position:fixed/absolute

元素,但不是

position:static/relative?

我做了一个小提示来演示这个问题,但是,您必须切换系统设置才能注意到它: https://jsfiddle.net/n4jtpwvw/

所需的最终结果:无论滚动条上的客户端设置如何,蓝色(#navigation)和红色(#main)DIV都应完美对齐。

1 个答案:

答案 0 :(得分:1)

位置固定/绝对的元素通常取自正常的文档流程。对幕后发生的事情有一个很好的答案here

至于你的代码,看看这个更新的jsfiddle,在我打开和关闭OSX选项时适合我

https://jsfiddle.net/n4jtpwvw/1/

.w1 {
  ...
  max-width: 300px;
  margin: 0 auto;
}

#navigationWrapper {
  ...
  max-width: inherit;
}

我在.w1和自动边距上设置了最大宽度。然后我从#navigationWrapper中取出左右属性,让它从.w1继承最大宽度