【发布时间】:2015-05-29 11:22:22
【问题描述】:
我非常精通 CSS,但今天我偶然发现了一个让我头疼的 sn-p(here 和 here)。
我从没想过可以通过margin: 0 auto 将绝对定位的元素居中,但考虑到有问题的元素有固定的宽度并且有left: 0 和right: 0,它实际上似乎工作:
#parent
{
background: #999;
height: 300px;
position: relative;
width: 300px;
}
#child
{
background: #333;
height: 50px;
left: 0;
margin: 0 auto;
position: absolute;
right: 0;
width: 50px;
}
<div id="parent">
<div id="child"></div>
</div>
(JSFiddle)
我一直认为 left: 0 和 right: 0 将决定元素的宽度(它是第一个相对定位的父元素的 100%),但似乎 width 在这里优先,因此使 margin: 0 auto 起作用。
这是定义的行为吗?我可以在任何规范中找到有关它的信息吗?我用谷歌搜索了一下,但没有找到任何有用的东西。
【问题讨论】:
-
@j08691 这确实是一个很好的链接。我喜欢 CSS 流程的逐步完成