You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask+Jinja2+Bootstrap网格布局:如何按断点切换为2列

解决Flask模板中响应式网格布局的问题

你当前的布局在窗口缩小后变成1列,是因为只用了col-md-3这个Bootstrap类——它仅在屏幕宽度≥768px(md断点)时生效,低于这个宽度时列会默认占满整行。要实现特定断点切换为2列,只需添加对应的响应式列类,这里推荐两种更合理的实现方式:

方案一:基于现有代码修改(保留batch过滤器)

给列容器添加col-sm-6类,这样在屏幕宽度≥576px(sm断点)时显示2列,≥768px时自动切换为4列:

<div class="container-fluid justify-content-start">
    {% for row in db | batch(4) %}
        <div class="row align-items-start">
        {% for column in row %}
            <!-- 添加col-sm-6,实现sm断点及以上显示2列 -->
            <div class="col-sm-6 col-md-3 p-2">
                <div class="card" style="max-width: fit-content">
                    <div class="card-body">
                        <img class="card-img-top" style="max-width: 300px" src="{{ column.img }}" alt="{{ column.name }}.img">
                        <!-- 修正:h5标签不能直接加href,需嵌套a标签 -->
                        <a href="/"><h5 class="card-title">{{ column.name }}</h5></a>
                        <a class="btn btn-sm btn-primary stretched-link" href="/services">Add to Cart</a>
                    </div>
                </div>
            </div>
        {% endfor %}
        </div>
    {% endfor %}
</div>

方案二:更优雅的实现(去掉batch过滤器)

Bootstrap的row本身支持自动换行,不需要手动用batch分组行。直接用单个row包裹所有列,响应式逻辑会更自然:

<div class="container-fluid">
    <div class="row align-items-start">
        {% for column in db %}
            <div class="col-sm-6 col-md-3 p-2">
                <div class="card" style="max-width: fit-content">
                    <div class="card-body">
                        <img class="card-img-top" style="max-width: 300px" src="{{ column.img }}" alt="{{ column.name }}.img">
                        <a href="/"><h5 class="card-title">{{ column.name }}</h5></a>
                        <a class="btn btn-sm btn-primary stretched-link" href="/services">Add to Cart</a>
                    </div>
                </div>
            </div>
        {% endfor %}
    </div>
</div>

这种方式下,sm断点(≥576px)每行显示2列,md断点(≥768px)每行显示4列,窗口继续缩小到sm以下时自动变成1列,完全符合Bootstrap的响应式设计逻辑。

内容的提问来源于stack exchange,提问作者Fredrik Ellefsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:20:28