我有一个 div 没有被剪切到父级的问题,即使它有overflow: hidden
.
我已经浏览过overflow: hidden
stackoverflow 上有问题,但大多数都有问题position
或者似乎表明我的代码应该可以工作。
这是一个MWE,你可以找到jsfiddlehere https://jsfiddle.net/huocukw7/1/:
<div id="parent">
<div id="scroller">
<div id="child">
meh
</div>
</div>
</div>
CSS:
#parent {
height: 500px;
overflow: hidden;
}
#scroller {
overflow: scroll;
}
#child {
height: 10000px;
}
我的期望是什么
#parent
has overflow: hidden
so #scroller
被剪裁到父级的高度。因为它是#child
比结果高度高overflow: scroll
结果出现滚动条。
会发生什么
#scroller
只是使用高度#child
并忽略两者overflow
特性。
简单的解决方法怎么样?
- 在我的现实世界中,有多个问题
<div>
s in #parent
所以我不能给#scroller
一个高度。
- html 是自动生成的,所以我不能直接删除
#scroller
.
感谢大家的帮助,
斯特凡
ANSWER
实际上,评论中有一个仅 CSS 的答案display: flex
. See:
https://jsfiddle.net/huocukw7/6/ https://jsfiddle.net/huocukw7/6/
#parent {
height: 500px;
overflow: hidden;
display: flex;
flex-direction:column;
}
#scroller {
overflow: auto;
flex-grow:1;
}
#child {
height: 10000px;
}
您需要做的就是提供height
给你的#scroller
#scroller {
overflow: scroll;
padding: 10px;
background-color: red;
height: 100%;
}
Demo https://jsfiddle.net/huocukw7/3/
根据你的观点 -在我的现实世界问题中,#parent 中有多个 s,所以我无法给 #scroller 高度。
没有其他方法可以使其可滚动而不分配height
到它。如果没有它,它会拉伸直到子元素结束,这不会使你的包装器可滚动。
您可以在这里使用 JavaScript 来计算height
在运行时并将其附加到元素。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)