我有一个div默认位置(即position:static)和div一个fixed位置。
div
position:static
fixed
如果设置元素的z索引,似乎不可能使固定元素位于静态元素之后。
#over { width: 600px; z-index: 10; } #under { position: fixed; top: 5px; width: 420px; left: 20px; border: 1px solid; height: 10%; background: #fff; z-index: 1; } <!DOCTYPE html> <html> <body> <div id="over"> Hello Hello HelloHelloHelloHelloHello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello </div> <div id="under"> </div> </body> </html>
我可以通过position:absolute 在static元素上使用来解决此问题 ,但是有人可以告诉我 为什么会 这样吗?
position:absolute
(似乎有一个与此问题类似的问题,固定位置破坏了z-index,但是它没有令人满意的答案,因此我在这里用示例代码来询问)
这个问题可以通过多种方式解决,但实际上,了解堆叠规则可以使您找到最适合自己的答案。
解决方案
该<html>元素是您唯一的堆叠上下文,因此只需遵循堆叠上下文中的堆叠规则,您将看到元素按此顺序堆叠
<html>
所以你可以
#under
#over
relative
真正的问题
在尝试更改元素的堆叠顺序之前,开发人员应该了解以下内容。
形成堆叠上下文时
堆叠上下文中的堆叠顺序
元素顺序: