【问题标题】:Adding space between columns in Bootstrap 4 [duplicate]在 Bootstrap 4 中的列之间添加空格 [重复]
【发布时间】:2018-07-27 19:02:14
【问题描述】:

我希望它看起来如何:

我正在尝试在 BS4 的列之间添加水平和垂直空间,但它会保持混乱的断点(黑色或红色)或引导程序的断点。有没有简单的方法来增加空间?我已经尝试过 BS4 的新边距设置,但它并没有真正帮助(弄乱了标题和背景颜色)。此外,2 个水平列应具有相同的高度。

顺便说一句。如果您运行 sn-p,由于 sn-p 输出的大小,列将无法正确显示。这就是它在非移动设备上的样子:screenshot(或扩展 sn-p)

* {
  color: white;
}

.black {
  background-color: black;
}

.red {
  background-color: red;
}

nav {
  background-color: antiquewhite;
  margin: 0px;
}

.row {}

.head {
  background-color: aqua;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" >
<nav class="navbar-static-top">
  Nav
</nav>
 <div class="container-fluid">
        <div class="row p-1">
            <div class="col black">
                <div class="row">
                    <div class="col head">
                        HEADING 0 COLUMN
                    </div>
                </div>
                <p>aaaa<br>
                aaaa</p>
            </div>
        </div>
        <div class="row row-eq-height p-1">
            <div class="col-md-6 black">
                <div class="row">
                    <div class="col head">
                        HEADING 1 COLUMNS BLACK
                    </div>
                </div>bbbb<br>
                bbbb<br>
            </div>
            <div class="col-md-6 red">
                <div class="row">
                    <div class="col head">
                        HEADING 2 CLOUMNS RED
                    </div>
                </div>cccc
            </div>
        </div>
        <div class="row p-1">
            <div class="col black">
                dddd
            </div>
        </div>
        <div class="row p-1">
            <div class="col black">
                eeee
            </div>
        </div>
        <div class="row row-eq-height p-1">
            <div class="col-md-6 black">
                <div class="row">
                    <div class="col head">
                        HEADING 3 COLUMNS BLACK
                    </div>
                </div>ffff<br>
                ffff<br>
            </div>
            <div class="col-md-6 red">
                <div class="row">
                    <div class="col head">
                        HEADING 4 CLOUMNS RED
                    </div>
                </div>hhhh
            </div>
        </div>
    </div>

【问题讨论】:

  • 使用 SASS 版本。那里有一个 _variables sass 文档,您可以在其中将装订线设置为不同的宽度,并且在预编译时它会在整个 CSS 中进行调整。

标签: html css twitter-bootstrap bootstrap-4 spacing


【解决方案1】:

对于间距 Bootstrap 4 具有响应间距类 p-*(用于填充)和 m-*(用于边距)。

因此,在您的情况下,您可以通过在所有列中添加p-1p-2 来进行试验,以达到预期的效果。

注意:Bootstrap 间距类基于 rem 单位,而不是基于 px,因为在响应式设计和可访问性方面,px 是过时的处理方式。

这里是你的参考链接:

https://getbootstrap.com/docs/4.0/utilities/spacing/

以下代码 sn-p 通过使用嵌套以及 m-1 类在列周围创建边距来产生所需的结果:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    
<style>
    * {
        color: white;
    }

    .black {
        background-color: black;
    }

    .red {
        background-color: red;
    }

    nav {
        background-color: antiquewhite;
        margin: 0px;
    }
    .head {
        background-color: aqua;
    }
</style>

<div class="container-fluid">
    <div class="row">
        <div class="col-12 col-md m-1">
            <div class="row">
                <div class="col black">
                    <div class="row">
                        <div class="col head">
                            HEADING 0 COLUMN
                        </div>
                    </div>
                    <p>aaaa<br>
                        aaaa</p>
                </div>
            </div>
        </div>
    </div>
    <div class="row row-eq-height">
        <div class="col-12 col-md m-1">
            <div class="row">
                <div class="col black">
                    <div class="row">
                        <div class="col head">
                            HEADING 1 COLUMNS BLACK
                        </div>
                    </div>

                    bbbb<br>
                    bbbb<br>

                </div>
            </div>
        </div>
        <div class="col-12 col-md m-1">
            <div class="row h-100">
                <div class="col red">
                    <div class="row">
                        <div class="col head">
                            HEADING 2 CLOUMNS RED
                        </div>
                    </div>cccc
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-12 col-md m-1">
            <div class="row">
                <div class="col black">
                    dddd
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-12 col-md m-1">
            <div class="row">
                <div class="col black">
                    eeee
                </div>
            </div>
        </div>
    </div>
    
    <div class="row row-eq-height">
        <div class="col-12 col-md m-1">
            <div class="row">
                <div class="col black">
                    <div class="row">
                        <div class="col head">
                            HEADING 3 COLUMNS BLACK
                        </div>
                    </div>

                    ffff<br>
                    ffff<br>

                </div>
            </div>
        </div>
        <div class="col-12 col-md m-1">
            <div class="row h-100">
                <div class="col red">
                    <div class="row">
                        <div class="col head">
                            HEADING 4 CLOUMNS RED
                        </div>
                    </div>hhhh
                </div>
            </div>
        </div>
    </div>
</div>

【讨论】:

  • 我试过了,但它一直在搞乱 BS 的断点。我尝试将“m-1”添加到每一行,但我的布局坏了。
  • 当然,m-1 会破坏布局。这就是我推荐p-1的原因。
  • 谢谢,我也试过了。但是两个水平柱之间仍然没有空间。在列中添加“p-1”会弄乱列的“标题”。
  • 再次,“2 个水平列”是什么?为什么不将它们命名为“横列 1”和“横列 2”?谁应该猜出您实际上是指哪些列?你刚才说你的意思是“到处间隔”。现在,它又回到了“并非无处不在”!
  • 嗯,这是你在编码时必须学习的第一件事。正确地描述问题有时会为您提供解决方案。只要描述得当,解决方案往往会自行出现。