“子绝父相”子标签应该是脱离文档流了啊,怎么父容器的overflow:hidden可以隐藏子元素?
来源:2-9 自由编程
行健同学
2020-11-11 12:05:09
# 具体遇到的问题
# 报错信息的截图
父容器div设置好宽、高,相对定位和overflow:hidden;子元素div.info设置了绝对定位,并让它在父元素之下,按我理解,子元素脱离了文档流,为什么overflow:hidden还能起作用呢?求指教。
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>过渡基本知识</title>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 300px;
height: 240px;
margin: 20px auto;
position: relative;
/* background-color: violet; */
overflow: hidden;
}
div img {
background-color: yellow;
display: block;
width: 300px;
height: 240px;
}
div .info {
padding-left: 20px;
margin: 0;
width: 280px;
height: 40px;
line-height: 40px;
background-color: rgba(0, 0, 0, 0.5);
color: white;
position: absolute;
bottom: -40px;
left: 0px;
transition: bottom 0.5s ease 0s;
}
div:hover .info { bottom: 0px;}
</style>
</head>
<body>
<div>
<img src="images/duck.png" alt="小黄鸭">
<div class="info">这是一只小黄鸭</div>
</div>
</body>
</html>
1回答
同学你好,代码实现是正确的,针对同学的问题解答如下:父元素设置了overflow:hidden;属性,那么只要超出了父元素区域的后代元素的内容,都会被隐藏;子元素设置绝对定位确实是脱离了文档流,但它依然是父元素下的子元素,超出了就会被隐藏。
祝学习愉快~
相似问题