- bounty将在6天后过期**。回答此问题可获得+100声望奖励。Federico Dorato希望引起更多人关注此问题。
我想在页面中插入一些元素。这些元素可以是"小"或"大"。
- 如果他们是"小",我希望他们是大col-4。
- 如果它们是"大"的,我希望它们尽可能大,从前一个元素到行的末尾。
因此,"big"元素可以是大的col-4、col-8或col-12,这取决于它的位置。
我在SO上发现的最相似的问题如下:Bootstrap fill remaining columns
我曾尝试使用问题中建议的方法,但它不包括在同一行中"大"元素后面有"小"元素的情况(使用与相关问题相同的词语,"它不包括在同一行中胭脂元素后面有蓝色元素的情况")
.col-4{
background:red;
}
.big{
background:yellow;
}
.row{
background:white;
}
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0/dist/css/bootstrap.min.css" rel="stylesheet"/>
<h1>
Expected result
</h1>
The goal is to obtain this same behaviour using the same style for every "big" element
<div class="container-fluid pt-2">
<div class="row">
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-12 big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-8 big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
</div>
</div>
<h1>
Not working attemp 1 (don't use any col)
</h1>
Issue: The "big" elements start on a new row instead of filling the previous row.
<div class="container-fluid pt-2">
<div class="row">
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
<div class="big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
</div>
</div>
<h1>
Not working attemp 2 (use only "col")
</h1>
Issue: Instead of occupying a whole row, the "big" elements shrink to make space for the next elements
<div class="container-fluid pt-2">
<div class="row">
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
<div class="col big mb-1">
big
</div>
<div class="col-4 mb-1">
small
</div>
</div>
</div>
https://jsfiddle.net/bhLq86o4/
那么,我如何给"big"元素分配同一个类,以使最终结果看起来像示例中描述的那样呢?
2条答案
按热度按时间ztmd8pv51#
在尝试了多种可能的配置(flex、grid、float等)之后,我想出了如何按要求完成它("big"元素具有相同的类):
HTML:
CSS:
最后一句话:由于这是一个 * 非显而易见的任务 *,我建议您使用原生CSS来完成它,而不是在BS类中挣扎许多天。
问候
fsi0uk1n2#
在Bootstrap中,可以使用col-auto类使网格列填充行中的剩余空间。col-auto类设置列的宽度以根据可用空间自动调整。
下面是一个例子:
在本例中,第一列将占用12个可用网格列中的8个,第二列将占用剩余的4个列。
如果要让第二列填充剩余的空间,可以将第二列上的类从col-4更改为col-auto:
通过此更改,第二列现在将自动调整其宽度以填充行中的剩余空间。