做一个点击查看显示详细信息的效果。
说一下问题描述,最外面的父元素overflow-parent设置了overflow:hidden,
然后子元素overflow-child没有设置overflow,设置了relative,为其包含的绝对定位的元素进行位置确定,这个元素点击时高度增加到300px.
<!doctype html>
<html>
<head>
<script src="jquery-1.9.1.min.js"></script>
<style>
.overflow-parent{
width: 200px;
height: 200px;
border: 1px solid #ccc;
overflow: hidden;
}
.overflow-child{
position: relative;
width: 100px;
height: 198px;
border: 1px solid blue;
}
.position{
position: absolute;
right: 10px;
background: #000;
bottom: top;
top: 110px;
z-index: 100;
width: 50px;
height: 50px;
}
.height{
height:300px;
}
</style>
<script>
function addHeight(htmlObj){
$(htmlObj).toggleClass("height");
}
</script>
</head>
<body> <div class="overflow-parent">
<div class="overflow-child">
<div class="position" onclick="addHeight(this)">
</div>
</div>
</div> </body>
</html>
效果图:
接下来点击这个绝对定位的元素,效果如下,我们发现没有超过包含的最终父元素overflow-parent。
然后把overflow-parent的overflow去掉,好了,结论是,我们做这个绝对定位和 堆叠时,要确定下其所有的祖先元素是否包含了overflow:hiden属性,不然的话,会发现无论怎么设置,都不会显示完全。