考虑使用此代码将div相对于其父元素居中:
div {
width:200px;
position:absolute;
left:50%;
margin-left:-110px;
padding:10px;
display:table;
}
我们正在使用(宽度/ 2) - 填充,对吧?
为什么所有基于Webkit的浏览器(Safari和Chrome)都将这个div 10px集中在左边?这个10px是填充。
所以我们在这里有两个方面:
现在我的问题是,两者中哪一个实际上做得对?
编辑:
Apperantly;只有在添加display:table时才会出现此问题;到了div。举个例子:http://jsfiddle.net/rhKW7/1/ link text
答案 0 :(得分:1)
你做错了。你应该使用
margin: 0 auto;
这会将元素置于其父级中心。
答案 1 :(得分:1)
根据您的实现,您可以包含需要以100%宽度和绝对定位的div居中的元素,然后使用当前元素使用边距:0 auto将其置于绝对定位的中心元件。
答案 2 :(得分:1)
我无法重新创建您的问题。您的代码适用于各种浏览器。
现场演示: http://jsfiddle.net/SXzbF/1/
编辑 我弄清楚了问题所在:
在Chrome中(至少),如果设置display:table
,那么结果就不会使用该元素的填充。我想,那是因为,对于TABLE元素,填充只设置为TD元素(对于单元格),而不是TABLE元素。我不确定在TABLE上设置填充是否有效,但我建议你不要这样做,而是在单元格上设置填充。