Html 为什么居中相对定位div中的绝对定位元素不居中?

Html 为什么居中相对定位div中的绝对定位元素不居中?,html,css,Html,Css,我不明白为什么下面的代码不能使图像居中。你能帮我吗 <div align="center" style="position:relative;"> <div style="position: absolute"> <img src="a.png"/> </div> </div> 如果要将绝对定位的元素居中,则需要使用自动边距并设置左和右值 #absolute-element{ left: 0; righ

我不明白为什么下面的代码不能使图像居中。你能帮我吗

<div align="center" style="position:relative;">
  <div style="position: absolute">
    <img src="a.png"/>
  </div>
</div>

如果要将绝对定位的元素居中,则需要使用自动边距并设置

#absolute-element{
    left: 0;
    right: 0;
    margin: 0 auto;
}

使用绝对时,必须设置顶部和左侧属性。如果要水平居中,则必须定义
左侧
右侧
属性

请看一下

<div style="position:relative; border-top:1px solid red;">
  <div style="position: absolute; left:50%; right:50%;">
    <img src="http://placehold.it/100x100" />
  </div>
</div>

要使图像水平和垂直居中,请添加
左:0;右:0;排名:0;底部:0;保证金:自动

<div style="position:relative; height: 100%; background: #eee;">
  <div >
    <img style="position: absolute; left:0; right:0; top:0; bottom:0; margin: auto;" src="http://placehold.it/350x150"/>
  </div>
</div>


?垂直地水平方向?为什么它应该居中?@j08691因为它在一个居中的div中,我想。除非你不定义
left
right
属性,否则它不会。你基本上告诉它绝对定位到它的相对父级,这是一个好的开始-但是你从那里开始呢?如果您试图获取绝对中心,则需要将(顶部:0;右侧:0;底部:0;左侧:0;边距自动;)添加到绝对定位元素中。默认值不是0吗?它是相对于父div定位的,父div是居中的,所以0 top和0 left应该在中间,不是吗?0 top和0 left是左上角,逻辑上html5不支持align=“center”我的理解是,绝对定位的元素是相对于其父元素定位的。如果父元素居中,则嵌入元素的0顶部和0左侧位于中心。那么,为什么图像不在中间呢?@Sunny88我想你指的是外部div内部的
align
属性。
align
属性只影响那些不是绝对位置的子div。这意味着我在div上设置align=“center”这一事实没有任何效果?与其使用
align=“center”
,不如使用
text align:center
来居中文本元素。请解释为什么给出
-1
?我不知道你是谁,但我在看过去几天我对我过去给出的所有答案进行了
否决投票。主持人必须关注这个问题。否则我最好离开论坛。