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

Bootstrap 5行间距设置:是否需同时使用gutter与margin类?

问题

在Bootstrap 5中,gutter类(比如gy-*)似乎无法在不同的row元素之间添加垂直间距,只有当单个row内的列总宽度超过12、显示时自动换行时才会生效。

我开发的主平台是iPad,内容以单行row呈现,所以用mb-2类添加行与行之间的间距;但在手机等小设备上,row内的内容会换行,此时换行后的列之间没有间距,因此又添加了gy-2类。想请教:多数情况下是否需要为row同时添加mb(margin bottom)类与gy(垂直gutter)类?

示例代码
<div class="row gy-2 mb-2">
    <div class="col">
        <span class="ps-2">
            <label>
                All tracks composed by 
            </label>
            <span>
                <a href="/composer.start?cid=0$=Composer$2682&amp;title=Composers+%2F+Johann+Sebastian+Bach" class="small figure-caption">
                    Johann Sebastian Bach
                </a>
                <label class="small figure-caption">
                      
                </label>
            </span>
        </span>
    </div>
</div>
<div class="row gy-2 mb-2">
    <div class="col-12 col-sm-auto">
        <span>
            <button id="show_movements_button" type="btn" class="btn btn-outline-primary" data-bs-toggle="collapse" data-bs-target="#movements_id">
                Show Movements
            </button>
        </span>
        <span>
            <button id="show_credits_button" type="btn" class="btn btn-outline-secondary" data-bs-toggle="collapse" data-bs-target="#credits_id">
                Show All Credits
            </button>
        </span>
    </div>
    <div class="col-12 col-sm-auto ms-sm-auto">
        <span>
            <span class="input-group">
                <span for="filter" id="filterlabel" class="input-group-text">
                    Filter
                </span>
                <input type="text" id="filter" name="filter" onkeyup="filterOnly()" class="form-control">
            </span>
        </span>
    </div>
</div>
回答

这种场景下确实需要同时添加mb-*和gy-*类,二者作用完全不同:

  • gy-*负责控制同一个row内部,列换行后产生的垂直间距,它本质是通过给列添加上下内边距(padding)实现的,不会影响不同row之间的距离;
  • mb-*负责控制不同row元素之间的垂直间距,属于margin属性,作用在row本身的底部,和row内部的列无关。

你的场景刚好覆盖了两种需要间距的情况:

  1. iPad等中等屏幕上,每个row都是单行布局,row内部没有换行,gy-*不会生效,此时mb-*负责给上下row之间加间距;
  2. 手机等小屏幕上,部分row内部的列会换行,此时gy-*能给换行后的列之间补上垂直间距,而mb-*依然负责不同row之间的间距。

如果只加其中一种,都会导致某一种场景下的间距缺失,所以多数类似的响应式布局场景中,同时使用这两个类是合理的做法。

内容的提问来源于stack exchange,提问作者Paul Taylor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:40:38