Css 为什么magin:auto不足以绝对或固定居中位置?
我试图将div的内容居中,父容器设置为相对 我在内部分区上使用这个Css 为什么magin:auto不足以绝对或固定居中位置?,css,css-position,Css,Css Position,我试图将div的内容居中,父容器设置为相对 我在内部分区上使用这个 position: absolute; margin: auto; width: 70px; height: 70px; 但它拒绝居中,我不得不在0的左右两边加一个,但我不明白为什么 position: absolute; right: 0; left: 0; margin: auto; width: 70px; height: 70px; 我认
position: absolute;
margin: auto;
width: 70px;
height: 70px;
但它拒绝居中,我不得不在0的左右两边加一个,但我不明白为什么
position: absolute;
right: 0;
left: 0;
margin: auto;
width: 70px;
height: 70px;
我认为居中只需要一个宽度,这是有
我有点困惑,为什么将右/左设置为0-似乎有效
另外,如果图像是70px,父框是200px(就是这样),将right设置为0,left设置为0-这实际上是在做什么
任何想法,我可能都没有正确理解
谢谢。使用
右侧
或左侧
(和位置:绝对
)将div绝对对齐到父元素,在您的情况下,偏移量为0
。尝试在浏览器的开发者控制台中使用它们的值。当元素具有绝对/相对位置时,可以使用左右属性
您可以使用margin:auto代码>
或在x轴上使用边距:0自动代码>
.parent{
宽度:200px;
高度:200px;
背景:红色;
}
.孩子{
保证金:自动;
宽度:70px;
高度:70像素;
背景:绿色;
}
固定点是绝对对中。你就快到了:
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
您需要将所有四个方向设置为0
,您的子div将完全位于父div的中心。您需要参考规范来理解这一点。如果元素没有使用<代码>位置:绝对< /代码>,那么你需要考虑你可以在哪里阅读:
如果“左边距”和“右边距”均为“自动”,则它们使用的值相等这将使元素相对于包含块的边缘水平居中
对于内部流动元件,除了宽度之外,只需要留有余量
当涉及到位置时:我们所指的绝对元素
如果“left”、“width”和“right”三个都是“auto”:首先将“margin left”和“margin right”的任何“auto”值设置为0
很明显,如果看不到任何左侧、右侧或宽度,边距将计算为0
(无定心)
如果三者都不是“自动”:如果“左边距”和“右边距”都是“自动”,则在两个边距获得相等值的额外约束下求解方程
当你设置左、右和宽度时,边距将得到相等的值(我们可以通过公式找到),你将有定心
如果您继续阅读,您还可以看到:
否则,将“左边距”和“右边距”的“自动”值设置为0
,并选择以下六条适用规则之一
所以,我们只有在设置左、右和宽度时,才能得到边缘的居中效果。省略一个不会使元素居中
下面是一个示例,以说明规范中详述的8种不同情况
.box{
高度:50px;
边框:1px实心;
位置:相对位置;
保证金:5px;
}
.box>div{
位置:绝对位置;
左:0;
右:0;
保证金:自动;
宽度:200px;
背景:红色;
颜色:#fff;
}
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
一些文本
请添加您的html代码。请给我们一个演示问题的代码片段。@DohaHelmy提供的代码已经存在enough@thingEvery没问题。他要求理解一个行为,但为什么我需要设置左和右,以便在位置为绝对位置时使其居中?必须将左和右设置为0,因为这样元素就试图同时适应左和右。