CSS z-index 不适用于相对定位
CSS z-index not working with relative positioning
我有一些像这样的 div:
<html>
<body>
<div id="out">
<div id="in">
<div id="one" style="position: relative; z-index: 3">
</div>
<div id="two" style="position: relative; z-index: 2">
</div>
<canvas id="three" style="position: relative; z-index: 1">
</canvas>
<canvas id="four" class="hidden">
</canvas>
</div>
<-- Some more divs with position: static (default)-->
</div>
</body>
</html>
我想要 #one (stacked over) #two (stacked over) #three
但我得到的只是 #one (before) #two (before) #three
就像它们在没有应用和任何 z-index 的情况下出现的一样。我怎样才能让我的 z-indices 工作,更重要的是为什么我的代码不工作?
您必须使用 top
和 left
属性。看看这个解决方案https://jsfiddle.net/f5L4puaa/
<div id="out">
<div id="in">
<div id="one" style="position: relative; z-index: 3; background-color:orange; top: 3.5em;">div one
</div>
<div id="two" style="position: relative; z-index: 2; background-color: yellow; top:3em;">div two
</div>
<canvas id="three" style="position: relative; z-index: 1; background-color:pink;">div three
</canvas>
<canvas id="four" class="hidden">
</canvas>
</div>
</div>
这是一个使用 "absolute" 定位的工作示例:https://jsfiddle.net/x32m5rhv/1
<div>
<div id="myBox" style="border: 1px solid #000; width: 100px; height: 100px; z-index: 4; position: absolute; background-color: #ff0000; opacity:0.8">myBox z-index 4</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:20px;left:20px;z-index:0;opacity:0.5;border:1px solid #333333;">z-index 0</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:40px;left:40px;z-index:1;opacity:0.5;border:1px solid #333333;">z-index 1</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:60px;left:60px;z-index:2;opacity:0.5;border:1px solid #333333;">z-index 2</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:80px;left:80px;z-index:3;opacity:0.5;border:1px solid #333333;">z-index 3</div>
</div>
我有一些像这样的 div:
<html>
<body>
<div id="out">
<div id="in">
<div id="one" style="position: relative; z-index: 3">
</div>
<div id="two" style="position: relative; z-index: 2">
</div>
<canvas id="three" style="position: relative; z-index: 1">
</canvas>
<canvas id="four" class="hidden">
</canvas>
</div>
<-- Some more divs with position: static (default)-->
</div>
</body>
</html>
我想要 #one (stacked over) #two (stacked over) #three
但我得到的只是 #one (before) #two (before) #three
就像它们在没有应用和任何 z-index 的情况下出现的一样。我怎样才能让我的 z-indices 工作,更重要的是为什么我的代码不工作?
您必须使用 top
和 left
属性。看看这个解决方案https://jsfiddle.net/f5L4puaa/
<div id="out">
<div id="in">
<div id="one" style="position: relative; z-index: 3; background-color:orange; top: 3.5em;">div one
</div>
<div id="two" style="position: relative; z-index: 2; background-color: yellow; top:3em;">div two
</div>
<canvas id="three" style="position: relative; z-index: 1; background-color:pink;">div three
</canvas>
<canvas id="four" class="hidden">
</canvas>
</div>
</div>
这是一个使用 "absolute" 定位的工作示例:https://jsfiddle.net/x32m5rhv/1
<div>
<div id="myBox" style="border: 1px solid #000; width: 100px; height: 100px; z-index: 4; position: absolute; background-color: #ff0000; opacity:0.8">myBox z-index 4</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:20px;left:20px;z-index:0;opacity:0.5;border:1px solid #333333;">z-index 0</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:40px;left:40px;z-index:1;opacity:0.5;border:1px solid #333333;">z-index 1</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:60px;left:60px;z-index:2;opacity:0.5;border:1px solid #333333;">z-index 2</div>
<div style="width:100px;height:100px;position:absolute;background-color:yellow;top:80px;left:80px;z-index:3;opacity:0.5;border:1px solid #333333;">z-index 3</div>
</div>