javascript - 如何设置最后一个内部 div 以使用 CSS 填充包装高度的其余部分?

标签 javascript css html height


我想创建一个包含 2 个内部 div 的包装 div,这样包装和第一个内部 div 将具有固定高度,第二个内部 div 将填充包装高度的其余部分。
我做过这样的事情:

<div class="frameArea">
   <div class="header"></div>
   <div class="frame"></div>
</div>

我的 CSS 文件如下所示:

.frameArea {
   width: 200px;
   height: 300px;
   border: 2px solid black;
}
.frameArea .header {
   background-color: green;
   width: 100%;
   height: 25px;
   font-size: 18px;
   line-height: 25px;
}
.frameArea .frame {
   background-color: white;
   width: 100%;
   height: 100%;
}

问题是,使用此 CSS 使 .frame div 成为 wrapper 高度 的 100%,这意味着他将是 300px 而不是我正在寻找的 - 275px(在这种情况下,包装器为 300 像素,.header 为 25 像素)。
我可以通过使用 JS 代码设置 .frame 的高度属性来做到这一点,该代码将在文档准备好时动态计算和设置它,但是我想问一下是否有任何 CSS 属性以更优雅的方式执行相同的操作?

谢谢!

最佳答案

使用 CSS calc()

.frameArea .frame {
    ...
    height: calc(100% - 25px);
}

DEMO

calc() 与旧浏览器不兼容,因此可能会给您带来兼容性问题,为了解决这个问题,我建议您使用 JavaScript 解决方案。

jQuery 解决方案

var h = $('div.frameArea').height() - 25;
$('div.frame').height(h);

DEMO

关于javascript - 如何设置最后一个内部 div 以使用 CSS 填充包装高度的其余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17763236/

相关文章:

html - 对齐两个 float div 中的内容。间距问题

HTML/CSS : loading bar (with buffer)

php - HTML 和 PHP 在一个文件中

javascript - Google map Javascript API - 如何删除与成人相关的搜索结果

html - 需要帮助调试 Bootstrap 响应能力。无法正确缩放内容

javascript - 使用单引号传递 json 编码的字符串

css - svg - 预定义元素的样式

php - 如何只允许从我的服务器上的文件调用 PHP 脚本?

javascript - CSS 动画复选标记

javascript - 从网站向日历应用程序添加事件?