【发布时间】:2018-07-21 16:39:52
【问题描述】:
假设,我在一个 div 中有 3 个 div A、B 和 C,这是一个 flex。
[ABC....]
我只想在 B 和 C 之间分配剩余空间,即 我想实现这个
[AB....C]
是否有一些属性可以帮助我指定在 B 和 C 之间分配空间,或者换句话说使 B 与 A 堆叠?
注意:我想在没有任何 div 嵌套的情况下执行此操作。
谢谢。
【问题讨论】:
假设,我在一个 div 中有 3 个 div A、B 和 C,这是一个 flex。
[ABC....]
我只想在 B 和 C 之间分配剩余空间,即 我想实现这个
[AB....C]
是否有一些属性可以帮助我指定在 B 和 C 之间分配空间,或者换句话说使 B 与 A 堆叠?
注意:我想在没有任何 div 嵌套的情况下执行此操作。
谢谢。
【问题讨论】:
只需像这样使用边距和自动值,无需添加额外的标记:
#list {
display: flex;
list-style-type: none;
padding: 0;
margin: 0;
}
li {
border: 1px solid;
padding: 8px;
}
li:last-child {
margin-left:auto;
}
<ul id="list">
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
【讨论】:
添加一个具有高 flex-grow 值的空元素。这将消耗可用空间。
#list {
display: flex;
list-style-type: none;
padding: 0;
margin: 0;
}
li {
border: 1px dotted currentColor;
padding: 8px;
}
.spacer {
flex-grow: 100;
}
<ul id="list">
<li>A</li>
<li>B</li>
<li class="spacer"></li>
<li>C</li>
</ul>
【讨论】:
1 的值可以在这里使用,因为其他值有 0。