【问题标题】:Twitter Bootstrap - add top space between rowsTwitter Bootstrap - 在行之间添加顶部空间
【发布时间】:2012-04-22 13:33:15
【问题描述】:

如何使用 twitter 引导框架为 class="row" 元素添加边距?

【问题讨论】:

    标签: css twitter-bootstrap


    【解决方案1】:

    在 .css 文件中添加这个类:

    .row {
        margin-left: -20px;
        *zoom: 1;
        margin-top: 50px;
    }
    

    或创建一个新类并将其添加到元素中

    .rowSpecificFormName td {
        margin-top: 50px;
    }
    

    【讨论】:

    • uhmmmmm 我不喜欢触摸 css,如果我需要在其他页面中没有边距的行怎么办?
    • 你可以新建一个类 .rowSpecificForm
    • 但在 Twitter Bootstrap 中没有为只有 'margin-top' 定义的 css 类。
    • 奇怪他们没有设置几个垂直间距的类,我需要添加它们没有其他解决方案:/,谢谢尼尔森
    • 记住 CSS 级联,因此您永远不必编辑 bootstrap.css。
    【解决方案2】:

    在 Twitter 引导程序中编辑或覆盖行是一个坏主意,因为这是页面脚手架的核心部分,您将需要没有上边距的行。

    要解决此问题,请改为创建一个新类“top-buffer”,以添加您需要的标准边距。

    .top-buffer { margin-top:20px; }
    

    然后在需要上边距的行 div 上使用它。

    <div class="row top-buffer"> ...
    

    【讨论】:

    • 编辑原生行对于框架来说是错误的,新类应该只是对行类的补充......这是一个微妙的区别,但在 Twitter Bootstrap 中,行具有特定的页面布局角色。无论如何,我只是想提供帮助,我的解决方案是解决问题的有效解决方案。
    • 没办法,恕我直言,这些答案略有不同。这个更有用,因为它包含“命名您的类样式,以便您的 html 更容易阅读”,并且您可以在 html 中读取 margin-top 而不是 rowSpecificForName。这个答案更符合 twitter 引导模式。
    • 他们将在 Bootstrap 4 中添加特定的垂直间距类:github.com/twbs/bootstrap/issues/4286
    • 我从这些 cmets 中学到的只是开发人员非常固执己见,有些人更喜欢 2 + 3 = 5,而另一些人更喜欢 3 + 2 = 5。继续……
    • @FabioS。应该学习的是,对于像 Bootstrap 这样的框架,编辑本机代码或覆盖它是一个坏主意。这些场景是无穷无尽的,但这里有几个例子。 a.) 覆盖 - 如果你覆盖 .row 类,你现在需要遍历你的项目并向不应接收边距的行添加一个额外的类 b.) 编辑本机代码 - 你在工作中继承了一个项目并且你想要升级到 bootstrap4;哎呀!一切看起来都不对!?现在,您有责任浏览 bootstrap 3 文件,试图找出前任开发人员到底改变了什么。
    【解决方案3】:

    好吧,只是为了让你知道发生了什么,我修复了使用 Acyra 上面所说的一些新类:

    .top5 { margin-top:5px; }
    .top7 { margin-top:7px; }
    .top10 { margin-top:10px; }
    .top15 { margin-top:15px; }
    .top17 { margin-top:17px; }
    .top30 { margin-top:30px; }
    

    只要我愿意&lt;div class="row top7"&gt;&lt;/div&gt;

    为了更好的响应,您可以添加 margin-top:7% 而不是 5px 例如:D

    【讨论】:

    • 我觉得这个方案比公认的方案优雅多了。
    • @alexander 但更通用。
    • .top-buffer { margin-top:20px; }.top30 { margin-top:30px; } 有何不同?好吧,从任何开发人员的角度来看:都是一样的。适合用例的调整不计入此处。特别是,如果 OP 回答了他自己的问题。
    • 显然最通用的解决方案是从 javascript 操作 DOM 以动态更改类或样式...
    • 经典的 17px 上边距;非常有用。
    【解决方案4】:

    我将这些类添加到我的引导样式表中

    .voffset  { margin-top: 2px; }
    .voffset1 { margin-top: 5px; }
    .voffset2 { margin-top: 10px; }
    .voffset3 { margin-top: 15px; }
    .voffset4 { margin-top: 30px; }
    .voffset5 { margin-top: 40px; }
    .voffset6 { margin-top: 60px; }
    .voffset7 { margin-top: 80px; }
    .voffset8 { margin-top: 100px; }
    .voffset9 { margin-top: 150px; }
    

    例子

    <div class="container">
      <div class="row voffset2">
        <div class="col-lg-12">
          <p>
            Vertically offset text.
          </p>
        </div>
      </div>
    </div>
    

    【讨论】:

      【解决方案5】:

      有时 margin-top 会导致设计问题:

      http://www.w3.org/TR/CSS2/box.html#collapsing-margins

      所以,我建议创建“margin-bottom classes”而不是“margin-top classes”并将它们应用于上一项。

      如果您使用 Bootstrap 导入 LESS Bootstrap 文件,请尝试使用成比例的 Bootstrap 主题空间定义 margin-bottom 类:

      .margin-bottom-xs {margin-bottom: ceil(@line-height-computed / 4);}  
      .margin-bottom-sm {margin-bottom: ceil(@line-height-computed / 2);} 
      .margin-bottom-md {margin-bottom: @line-height-computed;}
      .margin-bottom-lg {margin-bottom: ceil(@line-height-computed * 2);}  
      

      【讨论】:

        【解决方案6】:

        我正在使用这些类来改变上边距:

        .margin-top-05 { margin-top: 0.5em; }
        .margin-top-10 { margin-top: 1.0em; }
        .margin-top-15 { margin-top: 1.5em; }
        .margin-top-20 { margin-top: 2.0em; }
        .margin-top-25 { margin-top: 2.5em; }
        .margin-top-30 { margin-top: 3.0em; }
        

        当我需要一个元素与上面的元素有 2em 间距时,我会这样使用它:

        <div class="row margin-top-20">Something here</div>
        

        如果您更喜欢像素,请将 em 更改为 px 以按照自己的方式使用。

        【讨论】:

        • 好主意,但我将数字抽象出来,因为它们太具体了。如果您坚持使用 s、m、l、xl、xxl 等抽象,您可以通过 css 更改大小,而无需更改模板中的名称。
        • @MikePurcell 好主意,它可能是适合您的解决方案。但我更喜欢更准确的方式来定义边距。使用 em 而不是 px 为我提供了一种松散的方式来实现它而不会太具体。
        • &lt;div class="row margin-top-20"&gt;&lt;div class"row" style="margin-top: 2.0em"&gt; 有什么好处?
        • @icc97 基本上,关注点分开,但在这里你可以看到其他意见:stackoverflow.com/a/2612494/1683224
        • @WileyMarques 对于名为例如“top-buffer”(如在接受的答案中),但对于名为 margin-top-20 的类没有意义。除非你很高兴 margin-top-20 实际上添加了 2ems 的填充以外的东西,这只会令人困惑。
        【解决方案7】:

        如果你只想改变一页,添加以下样式规则:

         #myCustomDivID .row {
             margin-top:20px;
         }
        

        【讨论】:

          【解决方案8】:

          对于 Bootstrap 4,应使用

          应用间距

          速记实用程序类

          格式如下:

          {property}{sides}-{size}

          属性是以下之一:

          • m - 用于设置边距的类
          • p - 用于设置填充的类

          是以下之一:

          • t - 用于设置 margin-top 或 padding-top 的类
          • b - 用于设置 margin-bottom 或 padding-bottom 的类
          • l - 用于设置 margin-left 或 padding-left 的类
          • r - 用于设置 margin-right 或 padding-right 的类
          • x - 用于设置 *-left 和 *-right 的类
          • y - 用于同时设置 *-top 和 *-bottom 的类
          • 空白 - 用于在元素的所有 4 个边上设置边距或内边距的类

          size 是以下之一:

          • 0 - 用于通过将其设置为 0 来消除边距或填充的类
          • 1 - (默认情况下)用于将边距或填充设置为 $spacer * .25 的类
          • 2 - (默认情况下)用于将边距或填充设置为 $spacer * .5 的类
          • 3 - (默认情况下)用于将边距或填充设置为 $spacer 的类
          • 4 - (默认情况下)用于将边距或填充设置为 $spacer * 1.5 的类
          • 5 - (默认情况下)用于将边距或填充设置为 $spacer * 3 的类
          • auto - 用于将边距设置为 auto 的类

          所以你应该做这些:

          <div class="row mt-1">
          <div class="row mt-2">
                    ...
          <div class="row mt-5">
          

          阅读docs 了解更多说明。 通过here 尝试实时示例。

          【讨论】:

          • 随着 Bootstrap 4 的发布,这应该是现在公认的答案。它带有这些内置类,无需创建新的。
          【解决方案9】:

          我的把戏。不太干净,但对我来说效果很好

          <p>&nbsp;</p>
          

          【讨论】:

            【解决方案10】:

            引导程序 3

            如果您需要在引导程序中分隔行,您可以简单地使用.form-group。这会在行的底部增加 15px 的边距。

            在您的情况下,要获得顶部边距,您可以将此类添加到之前的 .row 元素

            <div class="row form-group">
            
            /* From bootstrap.css */
            .form-group {
                    margin-bottom: 15px;
            }
            

            引导程序 4

            你可以使用内置的spacing classes

            <div class="row mt-3"></div>
            

            类名中的“t”使其仅适用于“top”侧,bottom、left、right 也有类似的类。数字定义空间大小。

            【讨论】:

            • 是否从 BS4 中剥离了表单组?
            • 不,form-group is still present,但是添加了特殊的边距/填充类,可以完成这项工作并且有更多选项。
            • 在 Bootstrap V 4 中是否对此进行了多项更改?我现在使用的是 4 版本,mt-3 不起作用,所以使用了form-group
            • It should work,检查您链接到项目的引导 css 是否包含“.mt-3”类定义。
            【解决方案11】:

            Bootstrap 4 alpha,用于 margin-top:速记 CSS 类名称 mt-1、mt-2(mt-lg-5、mt-sm-2) 底部,右侧,左侧相同,并且您还有 auto 类 ml-auto

                <div class="mt-lg-1" ...>
            

            单位从 15 :在 variables.scss 这意味着如果您设置 mt-1 它会给出 0.25rem 的边距顶部。

            $spacers: (
              0: (
                x: 0,
                y: 0
              ),
              1: (
                x: ($spacer-x * .25),
                y: ($spacer-y * .25)
              ),
              2: (
                x: ($spacer-x * .5),
                y: ($spacer-y * .5)
              ),
              3: (
                x: $spacer-x,
                y: $spacer-y
              ),
              4: (
                x: ($spacer-x * 1.5),
                y: ($spacer-y * 1.5)
              ),
              5: (
                x: ($spacer-x * 3),
                y: ($spacer-y * 3)
              )
            ) !default;
            

            在这里阅读更多

            https://v4-alpha.getbootstrap.com/utilities/spacing/#horizontal-centering

            【讨论】:

              【解决方案12】:

              在 Bootstrap 4 alpha+ 你可以使用这个

              class margin-bottom-5
              

              类使用以下格式命名:{property}-{sides}-{size}

              【讨论】:

                【解决方案13】:

                您可以将以下类用于引导程序 4:

                mt-0 mt-1 mt-2 mt-3 mt-4 ...

                参考:https://v4-alpha.getbootstrap.com/utilities/spacing/

                【讨论】:

                  【解决方案14】:
                  just take a new class beside every row and apply css of margin-top: 20px;
                  here is the code below
                  <style>
                    .small-top
                     {
                       margin-top: 25px;  
                     }
                  </style>    
                  <div class="row small-top">
                     <div class="col-md-12">
                     </div>
                   </div>
                  

                  【讨论】:

                  • 请在您的答案中添加解释。没有解释的回答是没有用的。
                  【解决方案15】:

                  Bootstrap3

                  CSS(仅限装订线,周围没有边距):

                  .row.row-gutter {
                    margin-bottom: -15px;
                    overflow: hidden;
                  }
                  .row.row-gutter > *[class^="col"] {
                    margin-bottom: 15px;
                  }
                  

                  CSS(等边距,15px/2):

                  .row.row-margins {
                    padding-top: 7px; /* or margin-top: 7px; */
                    padding-bottom: 7px; /* or margin-bottom: 7px; */
                  }
                  .row.row-margins > *[class^="col"] {
                    margin-top: 8px;
                    margin-bottom: 8px;
                  }
                  

                  用法:

                  <div class="row row-gutter">
                      <div class="col col-sm-9">first</div>
                      <div class="col col-sm-3">second</div>
                      <div class="col col-sm-12">third</div>
                  </div>
                  

                  (使用 SASS 或 LESS 15px 可能是引导程序中的变量)

                  【讨论】:

                    【解决方案16】:

                    您可以添加此代码:

                    [class*="col-"] {
                        padding-top: 1rem;
                        padding-bottom: 1rem;
                    }
                    

                    【讨论】:

                      【解决方案17】:

                      只需简单地使用这个 bs3-upgrade 帮助器来进行间距和文本对齐...

                      https://github.com/studija/bs3-upgrade

                      【讨论】:

                        【解决方案18】:

                        如果你使用的是 BootStrap 3.3.7,你可以通过 NPM 使用开源库 bootstrap-spacer

                        npm install bootstrap-spacer
                        

                        或者你可以访问github页面:

                        https://github.com/chigozieorunta/bootstrap-spacer
                        

                        这是一个如何使用 .row-spacer 类分隔行的示例:

                        <div class="row row-spacer">
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                        </div>
                        
                        <div class="row row-spacer">
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                        </div>
                        

                        如果您需要列之间的空格,您还可以添加 .row-col-spacer 类:

                        <div class="row row-col-spacer">
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                        </div>
                        

                        您还可以将各种 .row-spacer 和 .row-col-spacer 类组合在一起:

                        <div class="row row-spacer row-col-spacer">
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                            <div class="col-md-4">
                            </div>
                        </div>
                        

                        【讨论】:

                        • 我建议不要为 40 行 css 添加依赖项
                        【解决方案19】:
                        <div class="row row-padding">
                        

                        简单的代码

                        【讨论】:

                        • 使用 bootstrap - 4 你可以添加这个类来使行之间的间距
                        【解决方案20】:

                        有一个技巧可以自动为容器中的第 2+ 行添加边距。

                        .container-row-margin .row + .row {
                            margin-top: 1rem;
                        }
                        

                        .container-row-margin 添加到容器中,结果:

                        完整的 HTML:

                        <div class="bg-secondary text-white">
                            div outside of the container.
                        </div>
                        <div class="container container-row-margin">
                            <div class="row">
                                <div class="col col-4 bg-warning">
                                    Row without top margin
                                </div>
                            </div>
                            <div class="row">
                                <div class="col col-4 bg-primary text-white">
                                    Row with top margin
                                </div>
                            </div>
                            <div class="row">
                                <div class="col col-4 bg-primary text-white">
                                    Row with top margin
                                </div>
                            </div>
                        </div>
                        <div class="bg-secondary text-white">
                            div outside of the container.
                        </div>
                        

                        取自官方samples

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2015-02-19
                          • 2014-06-02
                          • 2017-01-22
                          • 1970-01-01
                          • 2018-06-15
                          • 1970-01-01
                          • 2014-05-24
                          相关资源
                          最近更新 更多