#menu {
position: fixed;
width: 800px;
background: rgb(255, 255, 255); /* The Fallback */
background: rgba(255, 255, 255, 0.8);
margin-top: 30px;
}
我知道这个问题有一百万次了,但是我找不到答案。
我有一个div,它应该是固定在屏幕上,即使页面是滚动的,它应该始终保持在屏幕中间的中心!
div的宽度应该是500px,距离顶部应该是30px (margin-top),对于所有浏览器大小,应该水平居中在页面中间,当滚动页面的其余部分时不应该移动。
这可能吗?
这是另一个双div的解决方案。尽量保持简洁,而不是硬编码。首先,期望的html:
<div id="outer">
<div id="inner">
content
</div>
</div>
下面的css背后的原则是定位“outer”的某一侧,然后使用它假设“inner”的大小来相对移动后者。
#outer {
position: fixed;
left: 50%; // % of window
}
#inner {
position: relative;
left: -50%; // % of outer (which auto-matches inner width)
}
这种方法与昆汀的方法类似,但内部可以有不同的大小。
这里的答案已经过时了。现在您可以轻松地使用CSS3转换,而无需硬编码页边距。这适用于所有元素,包括没有宽度或动态宽度的元素。
水平中心:
left: 50%;
transform: translateX(-50%);
垂直中心:
top: 50%;
transform: translateY(-50%);
水平的和垂直的:
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
兼容性不是问题:http://caniuse.com/#feat=transforms2d