html - Flex 项目溢出容器
问题描述
在下面的代码中,Foo 是固定高度。条应垂直占用其余空间。但是条溢出来,垂直占用更多的其余部分,并且总是有一个滚动条。
body {
display: flex;
flex-direction: column;
}
.foo {
width: 100%;
height: 30px;
border: 1px solid red;
}
.bar {
width: 100%;
flex: 1;
border: 1px solid blue;
}
iframe {
border: 0;
padding: 0;
margin: 0;
width: 100%;
height: 100%;
}
<div class="foo">
This is Foo.
</div>
<div class="bar">
<iframe id="simple" src="simple.html"></iframe>
</div>
解决方案
默认情况下是 HTML 元素height: auto
。如果这是您要使用的空间,您需要定义全高。(更多细节)
然后您需要从body
元素中删除默认边距。
body {
display: flex;
flex-direction: column;
height: 100vh; /* NEW */
margin: 0; /* NEW */
}
.foo {
flex: 0 0 30px;
border: 1px solid red;
}
.bar {
flex: 1;
display: flex;
border: 1px solid blue;
}
iframe {
flex: 1;
}
<div class="foo">This is Foo.</div>
<div class="bar"><iframe id="simple" src="simple.html"></iframe></div>
推荐阅读
- mysql - JSP 代码不工作
- python-3.x - 有没有办法更新这些画布的颜色?
- sql - 新手BigQuery,SQL如何统计包含特殊行的组数
- apache - 里面的 SSLProxyCheckPeer 指令
部分 - angular - 原始/有效未在文本框中更新
- javascript - HTML,选择下拉项时更新字段
- django - Django matplotlib:fname 必须是 PathLike 或文件句柄
- php - 在 PHP 页面代码中更改 CSS 样式表
- c++ - 如何调用模板类的静态模板函数?
- sql-server - 使用 WITH 将 Oracle 查询转换为 T-SQL 查询