为什么高度是:100%;溢出的父母?
我在使用 CSS 时遇到了一些问题。这是我的代码:
#root {
width: 500px;
height: 300px;
border: 1px solid black;
}
#header {
border-bottom: 1px solid black;
width: 100%;
height: 50px; /* This is an example, we don't know the exact size */
}
#content {
width: 100%;
height: 100%;
border-bottom: 1px solid red;
}
<div id="root">
<div id="header">Some content</div>
<div id="content">Why am I overflowing ?</div>
</div>
⚠️我不知道确切的标题大小!
如您所见,内容 div溢出了根 div,但我想填充空旷的空间。
我读了很多其他问题,但它们都是关于 max-width 的,而且我没有使用这个属性。
如何用我的 content div 填充空白区域?
I'm having some problem with CSS. Here is my code:
#root {
width: 500px;
height: 300px;
border: 1px solid black;
}
#header {
border-bottom: 1px solid black;
width: 100%;
height: 50px; /* This is an example, we don't know the exact size */
}
#content {
width: 100%;
height: 100%;
border-bottom: 1px solid red;
}
<div id="root">
<div id="header">Some content</div>
<div id="content">Why am I overflowing ?</div>
</div>
⚠️ I don't know exact header size!
As you can see, the content div is overflowing the root div, but i want to fill the empty space.
I read many other questions, but they are all about max-width
, and I'm not using this property.
How to fill the empty space with my content div?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我会转换为简单的 flexbox 布局。
I would convert to a simple flexbox layout.
由于您不知道 header 的具体长度,有两种解决方案:
对
root
使用height:max-content
(这将使content
具有没有更多空间)并根据需要自定义content
的空间这将使
header
的任何height
都不会溢出父元素。Since you don't know the specific length for header, two solutions:
Use
height:max-content
forroot
(this will makecontent
have no more space) and custom the space forcontent
by what you wantThis will make whatever
height
forheader
not going to overflow the parent element.您必须减去标题的高度
更新
以获得标题的动态高度
你需要一些 javscript,我确信有更好的解决方案,但这也有效;)
所以无论 header 的高度是多少,内容都不会溢出
You have to subtract the height of your header
UPDATE
For the dynamic height of the header
you need some javscript, am sure there is better solutions for that but this works also ;)
So no matter what is the height of the header, the content will not overflowing