bootstrap 4 响应式卡网格/阵列

Posted

技术标签:

【中文标题】bootstrap 4 响应式卡网格/阵列【英文标题】:bootstrap 4 responsive card grid/ array 【发布时间】:2019-07-03 00:31:32 【问题描述】:

我正在尝试做类似于 codepen 的 dashboard 的事情,或者如果您没有帐户,您可以查看 codepen 的 home screen。

我有一个动态的卡片列表,但我希望它具有响应性,并且行中的卡片数量随着视口大小而减少。

我认为引导程序可以帮助它,但我尝试过的所有方法都不起作用。请注意,卡片的数量可以动态变化

这是我目前得到的pen:

<div class="row">
    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card card-default" >

            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>

    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card edge-danger card-warning" >
            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>

    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card edge-danger card-default" >
            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>

    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card edge-danger card-danger" >
            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>

    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card edge-danger card-white" >
            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>
    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card edge-danger card-danger" >
            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>

    <div class="col-md-2 " style="margin-bottom:10px;">
        <div class="card edge-danger card-white" >
            <button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
            <h3>Card</h3>
            <h6>Today</h6>
            <p><strong>5 Errors</strong></p>
            <p><strong>3 Warnings</strong></p>
            <p><strong>1 Info</strong></p>
        </div>
    </div>
</div>

结果就是这样。

但是当我减小寡妇宽度时,比率会丢失,我希望它宁愿转到下一行等等....同时使用可用的全宽空间。

我想要做的是:

缩小...

进一步缩小...

【问题讨论】:

如果您希望网格列在某些断点处更改大小,您可以提供适当的类。即(这个col-md-2可以变成这个col-lg-2 col-md-4 col-sm-6 @zgood 好,但是如何保持高宽比? 嗯,您的帖子中没有关于保持纵横比的内容......这是一个完全不同的问题。您可以查看使用padding-top 来保持比率的css aspect ratio trick。 @zgood 我提到了它并添加了第二张图片来显示该问题,感谢链接我会检查它。 【参考方案1】:

使用 Bootstrap 的响应式断点。例如:

<div class="col-lg-2 col-md-3 col-6" style="margin-bottom:10px;">
      <div class="card card-default">
          ...
      </div>
</div>

演示:https://www.codeply.com/go/WfAaguTKos

【讨论】:

谢谢,但是如何防止卡片丢失高宽比呢?当屏幕变小时【参考方案2】:

您可以使用多个 'col' 类,每个窗口大小一个

class="col-xs-6 col-sm-4 col-md-3 col-lg-2"

在此示例中,卡片将采用以下方式: 大屏幕 6 个,中屏幕 4 个,小屏幕 3 个,超小屏幕 2 个。

【讨论】:

以上是关于bootstrap 4 响应式卡网格/阵列的主要内容,如果未能解决你的问题,请参考以下文章

使用引导网格系统的响应式设计

如何在网格系统中添加多个元素并使其响应

如何从 Bootstrap 3 中获取响应式网格?

Bootstrap_响应式网格系统

Bootstrap 网格系统 1 行两列成 2 行

Bootstrap学习笔记 网格系统