为什么位置绝对呈现在静态位置之上?
问题描述:
我有一个简单的绝对div和另一个正常的div后面。为什么绝对div高于另一个?为什么位置绝对呈现在静态位置之上?
我知道我可以用z-index修复它 - 但是原因是什么?
JSBIN: http://jsbin.com/yadoxiwuho/1
<style>
.with-absolute {
position:absolute;
top:0px;
bottom:0px;
background-color:red
}
.other {
background-color:yellow;
}
</style>
</head>
<body>
<div class="with-absolute">Hello</div>
<div class="other">Why is this not on top? It comes last</div>
</body>
答
绝对:
这意味着你可以把它放在任何地方,而不会影响或流中的任何其他元素的影响。
与静态和相对值不同,绝对定位元素将从正常流程中移除。
下面是示例代码:
#box_1 {
position: absolute;
top: 0;
left: 0;
width: 200px;
height: 200px;
background: #ee3e64;
}
#box_2 {
position: absolute;
top: 0;
right: 0;
width: 200px;
height: 200px;
background: #44accf;
}
DEMO从笔者诺亚斯托克斯文件。
显然这里是诺亚斯托克斯DOCUMENT关于CSS定位
答
绝对元素的z-index通常默认值为0,位于静态位置上方。如果您想将它移到后面,请将z-index设置为-1。
+0
哇,从什么时候??我一直在编程css已经有15年了,从来没有玩过z索引。根据DOM流程显示绝对元素。如果我有两个孩子,第一个是绝对的,第二个孩子是最好的。 –
答
所有的静态元素有其默认的z-index(自动),这意味着,零。
我只有逻辑解释是,当您将position: relative|absolute|fixed
添加到元素时,将其放置在文档流之外,因此变为1的z索引。
请参阅http://stackoverflow.com/help/referencing以获取有关引用外部源的帮助。 – BoltClock
谢谢先生..供您参考。 – pcs