use*_*019 71 html css html5 position css3
假设您将以下css应用于div标签
.divtagABS {
position: absolute;
margin-left: auto;
margin-right:auto;
}
Run Code Online (Sandbox Code Playgroud)
margin-left和margin-right不生效
但如果你有亲戚,那就行了
,divtagREL {
position: relative;
margin-left: auto;
margin-right:auto;
}
Run Code Online (Sandbox Code Playgroud)
这是为什么?我只是想要一个元素
有人可以解释为什么在绝对位置设置自动保证金不起作用吗?
Kev*_*sox 136
编辑:这个答案过去声称不可能将绝对定位的元素居中margin: auto;,但这根本不是真的.因为这是最高投票和接受的答案,我猜我只是改变它是正确的.
将以下CSS应用于元素时
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
Run Code Online (Sandbox Code Playgroud)
然后给元素一个固定的宽度和高度,例如200px或40%,元素将自身居中.
chi*_*len 65
我用这个技巧将一个绝对定位的元素居中.但是,您必须知道元素的宽度.
.divtagABS {
width: 100px;
position: absolute;
left: 50%;
margin-left: -50px;
}
Run Code Online (Sandbox Code Playgroud)
基本上,你使用左:50%,然后将它的宽度减半,带有负边距.
小智 37
如果绝对元素有宽度,您可以使用下面的代码
.divtagABS{
width:300px;
positon:absolute;
left:0;
right:0;
margin:0 auto;
}
Run Code Online (Sandbox Code Playgroud)
Bak*_*alf 14
在下面使用JSFiddle.
使用绝对位置时,margin: 0 auto不起作用,但你可以这样做(也会缩放):
left: 50%;
transform: translateX(-50%);
Run Code Online (Sandbox Code Playgroud)
更新:工作的jsfiddle