问题:当父元素 overflow 设置为 auto时,发现绝对定位元素 溢出父级区域的地方 看不到了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.parent {
position: relative;
width: 250px;
height: 250px;
border: 10px solid tomato;
margin: 100px auto;
overflow: auto;
}
.child {
position: absolute;
top: -72px;
border: 5px solid green;
background: aliceblue;
padding: 20px;
}
</style>
</head>
<body>
<div class="parent">
<div class="child">
<ul>
<li>远看山有色</li>
<li>近听水无声</li>
<li>春去花还在</li>
<li>人来鸟不惊</li>
</ul>
</div>
</div>
</body>
</html>
经过试验,发现overflow:scroll也会是一样的结果
解决办法:再增加一个div,父子结构不变, 这个时候,overflow设置为hidden也不会影响子元素的显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.container {
position: relative;
}
.parent {
/* position: relative; */
width: 250px;
height: 250px;
border: 10px solid tomato;
margin: 100px auto;
overflow: hidden;
}
.child {
position: absolute;
top: -72px;
border: 5px solid green;
background: aliceblue;
padding: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="parent">
<p>
多少楼台烟雨中 多少楼台烟雨中 多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中
多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中多少楼台烟雨中
</p>
<div class="child">
<ul>
<li>远看山有色</li>
<li>近听水无声</li>
<li>春去花还在</li>
<li>人来鸟不惊</li>
</ul>
</div>
</div>
</div>
</body>
</html>
以上是项目中遇到的问题和解决办法,如果有错误,欢迎指出,谢谢