gpt4 book ai didi

jquery - 使用具有可变单元格数量的引导网格

转载 作者:技术小花猫 更新时间:2023-10-29 10:15:53 27 4
gpt4 key购买 nike

我有一个相册应用程序,用户最多可以上传 50 张图片。我希望图片连续显示 4 张图片。相册是动态的,这意味着用户可以通过 ajax 添加和删除图片。

如果无需不断地重新调整 DOM 元素和行即可添加/删除单元格,如何使用引导网格?

例如,如果用户加载包含 5 张图片的现有相册, Bootstrap 网格如下所示:

<div class="row">
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
</div>

<div class="row">
<div class="col-md-3"> a bunch of html here </div>
</div>

如果用户删除图片#2,网格将是(没有第 2 行,第 5 个元素移动到第 4 个元素)

<div class="row">
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
</div>

然后用户添加了 2 张新图片(通过 ajax),需要一个新行和另外 2 个列。

<div class="row">
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
</div>

<div class="row">
<div class="col-md-3"> a bunch of html here </div>
<div class="col-md-3"> a bunch of html here </div>
</div>

bootstrap 响应式设计可以在没有行的情况下做到这一点,还是我应该只使用 float div?请记住,这些列都是通过 ajax 添加/删除的(初始页面加载除外),因此我正在操作 DOM(行/列)。为每次更改重新计算行/列会很痛苦。

最佳答案

首先,要直接回答您的问题,您只需将所有列放在一行中即可。

<div class="row">
<div class="col-md-3"> <img src="1"> </div>
<div class="col-md-3"> <img src="2"> </div>
<div class="col-md-3"> <img src="3"> </div>
<div class="col-md-3"> <img src="4"> </div>
<div class="col-md-3"> <img src="5"> </div>
...
<div class="col-md-3"> <img src="50"> </div>
</div>

每第 4 个元素(因为网格是 12 列,我们使用 3 列宽网格 = 4 列)。此外,此技术始终需要等高的列,否则您的列将不会按预期换行。因此,如果您的图片尺寸不同,并且您没有将它们缩放到适合固定高度的范围内,就会遇到一些麻烦。

这不是 Bootstrap 对上述行为的“非法”行为。事实上,您会看到 Bootstrap 网站通过在单个列上为每个屏幕尺寸类应用多个列尺寸来执行此操作,就像 Bootstrap 网站上的这个示例:

<div class="row">
<div class="col-xs-12 col-sm-6 col-md-8">.col-xs-12 .col-sm-6 .col-md-8</div>
<div class="col-xs-6 col-sm-6 col-md-4">.col-xs-6 .col-sm-6 .col-md-4</div>
</div>
<div class="row">
<div class="col-xs-6 col-sm-4 col-md-4">.col-xs-6 .col-sm-4 .col-md-4</div>
<div class="col-xs-6 col-sm-4 col-md-4">.col-xs-6 .col-sm-4 .col-md-4</div>
<!-- Optional: clear the XS cols if their content doesn't match in height -->
<div class="clearfix visible-xs"></div>
<div class="col-xs-6 col-sm-4 col-md-4">.col-xs-6 .col-sm-4 .col-md-4</div>
</div>

当以上被认为是“特小”(-xs-)时,第一行中的第一列将跨越整个宽度,而第二列将仅跨越一半宽度。

在第二行,你可以看到类似的东西。在“特小”尺寸下,您将有三个“505”宽的列,这将给您两行。

此外,您还可以看到一个示例,说明如果列行的高度不匹配,如何清除列。他们建议在 clearfix 中插入一个空的 div。

我也会考虑使用列表并建议不要过度考虑它(我发现自己在使用 Bootstrap 时会这样做)。

在这种情况下,考虑这样的事情:

<ul id="image-list" class="row">
<li class="col-sm-3"><img src="1"></li>
<li class="col-sm-3"><img src="2"></li>
...
<li class="col-sm-3"><img src="n-1"></li>
<li class="col-sm-3"><img src="n"></li>
</ul>

关于jquery - 使用具有可变单元格数量的引导网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19607851/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com