css - 水平对齐三个元素的问题,中间元素增长到占用可用空间
问题描述
我的目标是水平对齐三个元素,其中中间元素<hr>
占据所有可用空间(width: 100%
),将外部两个元素推向两侧。
结果将是这样的:AAA-------BBB
,其中<hr>
元素用连字符表示。
我试过的
我已经尝试过,display: inline-block
但没有运气。
div {
display: inline-block;
background: #777;
}
hr {
width: 100%;
}
<div>
<h1>AAA</h1>
<hr />
<article>
<p>BBB</p>
</article>
</div>
解决方案
解决这个问题的最好方法是使用 CSS Flexbox。CSS Tricks 的人对这项技术有很好的指导。
Chris Coyier 的 Flexbox 完整指南
flex-grow
:这定义了弹性项目在必要时增长的能力。它接受用作比例的无单位值。
div {
display: flex;
background: #777;
}
hr {
flex-grow: 1;
}
<div>
<h1>AAA</h1>
<hr />
<article>
<p>BBB</p>
</article>
</div>
该display: inline-block
属性不起作用,因为它是一个内联元素,您希望将其扩展到容器的 100% 宽度,而不是 100% 的可用空间。我希望这可以澄清任何混淆。
推荐阅读
- gradle - 无法启动 Grails 4 应用程序,因为找不到或加载主类
- r - 如何在ggplot中绘制每组带有误差线的点?
- asp.net-mvc - ASP.NET MVC 无法将用户添加到数据库
- db2 - DB2 从 csv 摄取十进制数据
- javascript - 什么是 react-js 状态管理的推荐
- javascript - 使 HTML 按钮的显示属性依赖于 jQuery Get() 的完成
- apache-spark - PySpark:如何转置数据框中的多列
- vue.js - Vuex - 忽略突变处理程序并始终直接改变存储数据是个好主意吗?
- apache-kafka - Schema Registry - 注册自定义对象类型
- javascript - 反应:尝试将状态传递给父级时,事件为空