html - 如何给弹性项目100%的高度?
问题描述
我有以下标记。该类footer-info
有一些样式,无论存在多少文本,我都希望每列内的高度相同。
我不想在可能的情况下将样式应用于列类,并且如果可能的话,我也希望避免相对/绝对位置。有没有优雅的解决方案?
我想要的结果是每个footer-info
都填充父行的高度(等高列)。
我把它放在一个 jsfiddle 中:https ://jsfiddle.net/ntxc305e/
.container-fluid {
padding-right: 2rem;
padding-left: 2rem;
margin-left: auto;
margin-right: auto;
}
.row {
-webkit-box-sizing: border-box;
box-sizing: border-box;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-right: -0.5rem;
margin-left: -0.5rem;
}
.col-md {
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
-ms-flex-preferred-size: 0;
flex-basis: 0;
max-width: 100%;
}
.footer-info {
background-color: rgba(36, 36, 36, 0.8);
color: #f7f7ef;
padding: 20px;
}
<div class="container-fluid">
<div class="row">
<div class="col-md">
<div class="footer-info">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quae sunt, vero, minima perspiciatis sit autem natus aspernatur labore pariatur dicta aut iure eum doloremque suscipit dolorum, temporibus reiciendis. Veniam, nostrum.
</p>
</div>
</div>
<div class="col-md">
<div class="footer-info">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum recusandae qui accusamus similique explicabo mollitia quas, unde deserunt aperiam ipsam non distinctio totam officiis incidunt enim soluta odio saepe. Ullam.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus suscipit voluptas nobis ad sit beatae, quaerat, harum reiciendis autem rerum est molestiae. Quisquam optio rerum consequuntur doloribus corporis suscipit aliquid!</p>
</div>
</div>
<div class="col-md">
<div class="footer-info">
<p>Small column</p>
</div>
</div>
</div>
</div>
解决方案
使用您发布的 jsfiddle 示例,解决方案实际上非常简单!在row
你的例子中是一个弹性容器,col-md
元素是他的弹性项目。弹性项目的重要之处在于,它们填充了容器的高度,这意味着您的所有col-md
项目都垂直填充了容器,row
因此它们的高度已经相同。同时您的footer-info
元素始终是元素的直接子col-md
元素,这意味着您唯一需要做的就是将 的高度设置footer-info
为 100% 以填充其父元素 ( col-md
) 的高度。我在这里为您创建了一个简化的示例:
.row {
display: flex;
justify-content: space-around;
}
.col-md {
flex-basis: 30%;
}
.footer-info {
box-sizing: border-box;
background-color: rgba(36, 36, 36, 0.8);
color: #f7f7ef;
padding: 20px;
height: 100%;
}
<div class="row">
<div class="col-md">
<div class="footer-info">
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quae sunt, vero, minima perspiciatis sit autem natus aspernatur labore pariatur dicta aut iure eum doloremque suscipit dolorum, temporibus reiciendis. Veniam, nostrum.
</p>
</div>
</div>
<div class="col-md">
<div class="footer-info">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum recusandae qui accusamus similique
</p>
</div>
</div>
<div class="col-md">
<div class="footer-info">
<p>Small column</p>
</div>
</div>
</div>
推荐阅读
- aws-lambda - 无服务器错误类型错误:无法读取未定义的属性“toLowerCase”
- sql - 追加查询问题
- .net - 如何安装 Github NuGet 包?
- r - 如何更改 Flexdashboard valueBox() 的字体颜色
- docker - 与 gitlab 容器注册表的连接被拒绝
- keras - 如何在 Keras 中构建具有多个输出的神经网络回归模型
- javascript - 使用 @stripe/stripe-react-native 处理 Stripe 时抛出错误
- visual-studio - 在 kuberentes 上进行端口转发后,无需任何身份验证即可连接到远程 Jupyter 服务器
- r - 使用 glmer 函数的错误消息“pwrssUpdate 中的错误”
- css - 使用 webpack 将 CSS 加载到 React 组件中不起作用