我希望z-index
高于div {
width: 100px;
height: 100px;
}
.div1 {
background: red;
z-index: 1;
}
.div2 {
background: blue;
margin-top: -15vh;
z-index: 2
}
。我尝试使用<div class="div1"></div>
<div class="div2"></div>
,但它不起作用。
我已尝试过此代码:
model {
components {
library(NativeLibrarySpec) {
binaries.withType(StaticLibraryBinarySpec) {
buildable = false
}
}
}
}
&#13;
$ gradle components
...
Binaries
Shared library 'library:sharedLibrary'
build using task: :librarySharedLibrary
build type: build type 'debug'
flavor: flavor 'default'
target platform: platform 'linux_x86-64'
tool chain: Tool chain 'gcc' (GNU GCC)
shared library file: build/libs/library/shared/liblibrary.so
Static library 'library:staticLibrary' (not buildable)
build using task: :libraryStaticLibrary
build type: build type 'debug'
flavor: flavor 'default'
target platform: platform 'linux_x86-64'
tool chain: Tool chain 'gcc' (GNU GCC)
static library file: build/libs/library/static/liblibrary.a
Disabled by user
&#13;
答案 0 :(得分:7)
在许多情况下,必须定位一个元素才能使z-index
起作用。
确实,将position: relative
应用于问题中的div会解决z-index
问题。
实际上,position: fixed
,position: absolute
和position: sticky
也会启用z-index
,但这些值也会更改布局。使用position: relative
时,布局不会受到干扰。
基本上,只要元素不是position: static
(默认值),它就会被视为已定位且z-index
将起作用。
此处和相关问题中的一些答案断言z-index
仅对定位元素 。从CSS3开始,这已不再适用。
即使z-index
为position
,flex items或grid items元素也可以使用static
。
来自规格:
Flex项目绘制与内联块完全相同,除了使用订单修改的文档顺序代替raw 文档顺序以及
z-index
以外的auto
值即使position
为static
也会创建堆叠上下文。5.4. Z-axis Ordering: the
z-index
property网格项的绘制顺序与内联块完全相同,但订单修改的文档顺序除外 用于代替原始文档订单,
z-index
以外的auto
值创建堆叠上下文,即使position
是static
。
以下是z-index
处理非定位弹性项目的演示:https://jsfiddle.net/m0wddwxs/
答案 1 :(得分:5)
您可以向两个div添加position: relative
并创建stacking context
div {
width:100px;
height: 100px;
}
.div1 {
background: red;
z-index: 2;
position: relative;
}
.div2 {
background: blue;
margin-top: -15vh;
z-index: 1;
position: relative;
}
&#13;
<div class="div1"></div>
<div class="div2"></div>
&#13;
或者您可以使用transform-style: preserve-3d;
,因此现在.div1
应位于 3D空间中,而不是在平面中展平。
div {
width:100px;
height: 100px;
}
.div1 {
background: red;
z-index: 2;
transform-style: preserve-3d;
}
.div2 {
background: blue;
margin-top: -15vh;
z-index: 1;
}
&#13;
<div class="div1"></div>
<div class="div2"></div>
&#13;
您还可以使用translate
或transform
rotate
div {
width:100px;
height: 100px;
}
.div1 {
background: red;
z-index: 2;
transform: translate(1px);
}
.div2 {
background: blue;
transform: translate(1px, -15vh);
z-index: 1;
}
&#13;
<div class="div1"></div>
<div class="div2"></div>
&#13;
div {
width:100px;
height: 100px;
}
.div1 {
background: red;
filter: brightness(0.4);
z-index: 2;
}
.div2 {
background: blue;
margin-top: -15vh;
filter: brightness(0.4);
z-index: 1;
}
&#13;
<div class="div1"></div>
<div class="div2"></div>
&#13;
答案 2 :(得分:1)
z-index
仅适用于position
以外static
的元素,例如:relative
,absolute
或fixed
。
div {
width:100px;
height: 100px;
position:relative;
}
.div1 {
background: red;
z-index: 2;
}
.div2 {
background: blue;
margin-top: -15vh;
z-index: 1
}
<div class="div1"></div>
<div class="div2"></div>
答案 3 :(得分:0)
div
的默认属性为position:static
,在position:relative
中添加div
,只有z-index
才有效。