我想要一个可重复使用的方法来在其容器中水平居中放置绝对位置的固定宽度元素,并且我想要可重用的代码(例如,没有负像素边距)。这是将绝对定位元素水平居中的有效方法吗?
我经历了完美的作品组合跌跌撞撞:
http://jsfiddle.net/aaronadams/Mquha/
<div class="outer center">
<div class="inner center"></div>
</div>
.outer {
position: absolute;
width: 400px; height: 400px;
background: #999;
}
.inner {
position: absolute;
width: 200px; height: 400px;
background: #666;
}
.center {
left: 0; right: 0;
margin-left: auto; margin-right: auto;
}
它的清洁,它的(相对)很容易理解,它出现在IE工作8+,Chrome浏览器,Firefox,Safari ......但它也似乎是一个巨大的,肮脏的,不好的定位黑客,随时都可能在接缝处发现。
我找不到任何文件来建议此定位行为是正确还是不正确。这是什么?适合生产还是完全不可靠?
哦,我的上帝!它也适用于垂直居中! o_O – laconbass 2013-04-22 02:53:56
似乎很好,只要你不寻找**流体布局**。 – 2013-04-22 03:01:51
我不明白这与使用相对定位+负边界(除了看起来像更多代码的事实不同)。无论哪种方式,你必须知道元素的大小。既然你已经知道它的大小,将它除以2似乎是一个没有问题的问题。 – cimmanon 2013-04-22 03:27:22