父元素设置了height和overflow :hidden情况下 ,子元素的z-index不起作用,如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父元素设置了height和overflow :hidden情况下 ,子元素的z-index不起作用,如何解决?相关的知识,希望对你有一定的参考价值。

例:
<div style="height:100px;overflow:hidden;position:relative">//父div已添加position属性
<div style="height:200px;position:absolute;z-index:99;"></div>
</div>
父div设置了height和overflow:hidden,子div设置的z-index就不起作用了。
那么问题来了:
父div的style保持不变,如何让z-index起作用?
问错了,应该是怎么让遮挡住的部分显示出

参考技术A 你这个以经起做用了我给你将两个DIV加了一下背景颜色,如下,;z-index:99;你可以在改;z-index:-99;试一下,他就可以看到第二个DIV位于第一个DIV低层了
<div style="height:100px;overflow:hidden;position:relative; background:#f00">//父div已添加position属性
<div style="height:200px;position:absolute;z-index:99;background:#000">dsf</div>
</div>本回答被提问者和网友采纳
参考技术B 需设置三个DIV position的属性追问

怎么设置?3个div?

参考技术C 设置positon属性定位3个DIV就好了啊追问

怎么设置?3个div?

overflow:hidden用法

1、当父元素设置了height值时,则设置overflow:hidden后,子元素超出父元素部分隐藏

2、当父元素的高度是靠子元素撑开的时候,子元素浮动时,则在父元素使用overflow: hidden可以清除浮动,使得父元素的高度依旧是靠子元素撑开。

作用1示例:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#div1{
width: 500px;
border: 1px solid red;
height: 50px;
overflow: hidden;
}
#div2{
width: 100px;
height: 100px;
border:1px solid blue;
float: left;
}
</style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>

作用2示例:

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#div1{
width: 500px;
border: 1px solid red;
overflow: hidden;
}
#div2{
width: 100px;
height: 100px;
border:1px solid blue;
float: left;
}
</style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>

以上是关于父元素设置了height和overflow :hidden情况下 ,子元素的z-index不起作用,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

论overflow的重要性

高度自适应

浮动清除

清除浮动float

清除浮动的方式

css如何让子元素不受父级的父级的overflow:hidden影响