如何使 child 在 flex 中填充 parent 的所有可用高度
How to make child fill all avaliable height of parent in flex
我有两个 div,Parent 和 Child。
我需要让 Child 填充 Parent 的所有可用高度。
但出于某种原因,我在底部有这个填充。
只有当我使用Child
的高度105%
时才能删除它
但这显然不是最好的解决方案。
我尝试使用 align-items: stretch
,但没有任何效果。
<div
style={{
width: 100%;
height: 92%;
display: flex;
flex-direction: row;
box-sizing: content-box;
}}
>
<div
style={{
height: '100%',
backgroundColor:'red',
}}
>
</div>
</div>
父容器的宽度或高度需要为specific/absolute。所以不是将父级的高度设置为 92%,你可以尝试 92 vh.
<div
style={{
width: 100%;
height: 92vh;
display: flex;
flex-direction: row;
box-sizing: content-box;
}}
>
<div
style={{
height: '100%',
backgroundColor:'red',
}}
>
abc
</div>
</div>
在弹性项目上使用 flex-basis: 100%;
。
html,
body {
margin: 0;
height: 100%;
}
body>div:first-child {
width: 100%;
height: 100%;
display: flex;
flex-direction: row;
box-sizing: content-box;
}
div>div {
flex-basis: 100%;
background-color: red;
}
<div>
<div>foo</div>
</div>
您可以从下面的第二个示例中看出,尽管有静态或动态大小的父级,它仍然有效。
body>div:first-child {
width: 800px;
height: 400px;
display: flex;
flex-direction: row;
box-sizing: content-box;
}
div>div {
flex-basis: 100%;
background-color: red;
}
<div>
<div>foo</div>
</div>
这里已经列出了一些基础知识。为了便于阅读,我也对它进行了一些重新格式化。您将 background-color 作为背景颜色,以及 100% 到“100%”。
如果以此为基础,把它的宽和高改成100%应该没有问题。较大的变化是设置位置,并确保设置高度和宽度。
<body style="position: absolute; padding: 0; margin: 0; width: 100vw; height: 100vh; background-color: aquamarine; display: flex; justify-content: center;">
<div style="
position: relative;
width: 70%;
height: 70%;
align-self: center;
box-sizing: content-box;
border: 2px solid grey;
background-color: aliceblue;
display: flex;
justify-content: center;">
<div style = "
position:relative;
align-self: center;
height: 80%;
width: 80%;
background-color: red;">
</div>
</div>
</body>
我还为正文添加了一些样式,以帮助理解正在发生的事情。
我有两个 div,Parent 和 Child。
我需要让 Child 填充 Parent 的所有可用高度。
但出于某种原因,我在底部有这个填充。
只有当我使用Child
的高度105%
时才能删除它
但这显然不是最好的解决方案。
我尝试使用 align-items: stretch
,但没有任何效果。
<div
style={{
width: 100%;
height: 92%;
display: flex;
flex-direction: row;
box-sizing: content-box;
}}
>
<div
style={{
height: '100%',
backgroundColor:'red',
}}
>
</div>
</div>
父容器的宽度或高度需要为specific/absolute。所以不是将父级的高度设置为 92%,你可以尝试 92 vh.
<div
style={{
width: 100%;
height: 92vh;
display: flex;
flex-direction: row;
box-sizing: content-box;
}}
>
<div
style={{
height: '100%',
backgroundColor:'red',
}}
>
abc
</div>
</div>
在弹性项目上使用 flex-basis: 100%;
。
html,
body {
margin: 0;
height: 100%;
}
body>div:first-child {
width: 100%;
height: 100%;
display: flex;
flex-direction: row;
box-sizing: content-box;
}
div>div {
flex-basis: 100%;
background-color: red;
}
<div>
<div>foo</div>
</div>
您可以从下面的第二个示例中看出,尽管有静态或动态大小的父级,它仍然有效。
body>div:first-child {
width: 800px;
height: 400px;
display: flex;
flex-direction: row;
box-sizing: content-box;
}
div>div {
flex-basis: 100%;
background-color: red;
}
<div>
<div>foo</div>
</div>
这里已经列出了一些基础知识。为了便于阅读,我也对它进行了一些重新格式化。您将 background-color 作为背景颜色,以及 100% 到“100%”。
如果以此为基础,把它的宽和高改成100%应该没有问题。较大的变化是设置位置,并确保设置高度和宽度。
<body style="position: absolute; padding: 0; margin: 0; width: 100vw; height: 100vh; background-color: aquamarine; display: flex; justify-content: center;">
<div style="
position: relative;
width: 70%;
height: 70%;
align-self: center;
box-sizing: content-box;
border: 2px solid grey;
background-color: aliceblue;
display: flex;
justify-content: center;">
<div style = "
position:relative;
align-self: center;
height: 80%;
width: 80%;
background-color: red;">
</div>
</div>
</body>
我还为正文添加了一些样式,以帮助理解正在发生的事情。