【发布时间】:2019-08-01 20:21:33
【问题描述】:
如果hr 元素被扔到一个弹性容器中,而justify-content 设置为flex-start,则hr 将占据所有空间,而其他元素将像justify-content 一样分布设置为space-between。
This answer(从 2015 年开始)解释说 hr 的左右边距默认为 auto。然而,Firefox 的 Inspector 将左右边距的 Box 模型显示为 0,如下面的代码 sn-p 和图像所示。当我们将它们显式设置为 auto 时,盒模型还会在这些边距中显示 auto。
这似乎是一个 Firefox 错误,因为 Chrome 显示正确测量的auto 边距。或者在过去几年中,规范是否发生了变化,而我的 Firefox(Debian 9 上的 Quantum 60.8.0esr 64 位)已经过时了?
当横向边距明显不同时,图像显示为“0”。
html,body {
height: 100%;
margin: 0;
}
.div {
display: flex;
background-color: lightgreen;
justify-content: flex-start;
height: 50%;
}
.div div {
background-color: yellow;
border: 5px solid green;
margin: 5px;
}
<div class='div'>
<div>A</div>
<div>B</div>
<hr>
<div>C</div>
</div>
下面是它的外观(hr 已被删除,但它应该具有其他 div 的大致宽度)。
html,body {
height: 100%;
margin: 0;
}
.div {
display: flex;
background-color: lightgreen;
justify-content: flex-start;
height: 50%;
}
.div div {
background-color: yellow;
border: 5px solid green;
margin: 5px;
}
<div class='div'>
<div>A</div>
<div>B</div>
<div>C</div>
</div>
【问题讨论】:
-
@AmareshSM 是的,
marginCSS 属性解决了这个问题。奇怪的是,我的 Firefox 说边距是 0,而显然不是。