【问题标题】:In Bootstrap 3,How to change the distance between rows in vertical?在 Bootstrap 3 中,如何更改垂直行之间的距离?
【发布时间】:2014-08-10 04:13:05
【问题描述】:

我有两排a和b,我觉得两排垂直的距离太小了。

我想让距离更大,我知道我可以通过 col-md-offset-* 改变水平距离。但是如何改变垂直距离?

   <div class="row" id="a">
      <img> ... </img>
    <div>
    <div class="row" id="b">
      <button>..</button>
    <div>

现在我的解决办法是插入一个h1的标签,我觉得不太优雅。

   <div class="row" id="a">
      <img> ... </img>
    <div>
    <h1></h1>
    <div class="row" id="b">
      <button>..</button>
    <div>

它有更优雅的解决方案吗?

【问题讨论】:

标签: html css twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

而不是添加任何标签,这永远不是一个好的解决方案。您始终可以将margin 属性与所需元素一起使用。

您可以在行类本身上添加边距。所以它会影响全球。

.row{
  margin-top: 30px;
  margin-bottom: 30px
}

更新在所有情况下,更好的解决方案是引入一个新类,然后将其与.row 类一起使用。

.row-m-t{
  margin-top : 20px
}

然后在任何你想要的地方使用它

<div class="row row-m-t"></div>

【讨论】:

  • 我不会像这样编辑 .row 类,因为 .row 在整个引导程序 3 中都使用过。最好创建一个像 .row-margin 这样的新类
  • 是的@Dan 我同意你的观点,但这完全取决于要求。如果我想要每个行类,那么我会使用它,否则我会创建新的。顺便说一句,这只是一个例子..
  • 我不认为定义行 css 是个好主意,为什么不引导程序给出更好的解决方案,他们已经定义了 col-md-offset,为什么不再次定义 rol-md-offset-* ?
  • 修改行类是一种反模式,因为它是引导脚手架的基本部分。为此目的创建一个 css 类或使用其他添加垂直边距的引导类,例如 form-group。
  • 我完全同意你的观点,丹。您可以更进一步,自定义 css 类名称,如 .row-margin-sm、.row-margin-md、.row-margin-lg 等。然后将它们插入需要的地方。它不会损害原始引导框架 - 它们只是自定义帮助类。
【解决方案2】:

使用&lt;br&gt;标签

<div class="container">   
    <div class="row" id="a">
        <img src="http://placehold.it/300">
    </div>

    <br><br> <!--insert one, two, or more here-->

    <div class="row" id="b">
      <button>Hello</button>
    </div>
</div>

【讨论】:

  • 为什么要投反对票?
    建议在引导文档中使用
    标签getbootstrap.com/css/#type-addresses
  • 我觉得加br是个好主意,比加h1标签要好。但是为什么不引导程序给出更好的解决方案,他们已经定义了col-md-offset,为什么不定义rol-md -offset-* 再次?

  • 应该用于保留文本中的换行符,其中行的划分很重要,就像您的示例地址一样。不应使用它来增加间隙,而应使用边距或填充。然而不幸的是,我的评论对 boostrap 没有帮助 - 但它通常适用于 CSS / html developer.mozilla.org/en-US/docs/Web/HTML/Element/br
  • 永远不要用 HTML 格式化! HTML 用于 DOM 结构格式的CSS。
  • 澄清一下,官方的 Bootstrap 文档确实建议使用
    标签在元素之间添加空格。文档使用它们为文本流添加换行符,这是正确的用法。
【解决方案3】:

有一种简单的方法。 您为除第一行之外的所有行定义以下具有属性的类:

.not-first-row
{
   position: relative;
   top: -20px;
}

然后,您将类应用于所有非第一行并调整负顶部值以适合您所需的行空间。这很容易,而且效果更好。 :) 希望对您有所帮助。

【讨论】:

    【解决方案4】:

    更新

    Bootstrap 4 有间距实用程序来处理这个https://getbootstrap.com/docs/4.0/utilities/spacing/

    .mt-0 {
      margin-top: 0 !important;
    }
    

    --

    原始答案

    如果你使用的是 SASS,我通常会这样做。

    $margins: (xs: 0.5rem, sm: 1rem, md: 1.5rem, lg: 2rem, xl: 2.5rem);
    
    @each $name, $value in $margins {
      .margin-top-#{$name} {
        margin-top: $value;
      }
    
      .margin-bottom-#{$name} {
        margin-bottom: $value;
      }
    }
    

    这样您以后就可以使用margin-top-xs,例如

    【讨论】:

      【解决方案5】:

      如果是我,我会引入新的 CSS 类并与未修改的引导行类一起使用。

      HTML

      <div class="row extra-bottom-padding" id="a">
         <img>...</img>
      <div>
      <div class="row" id="b">
         <button>..</button>
      <div>
      

      CSS

      .row.extra-bottom-padding{
         margin-bottom: 20px;
      }
      

      【讨论】:

      • 最佳解决方案,尽管命名应遵循引导指南:class="row row-gutter"
      【解决方案6】:

      使用:

      <div class="row form-group"></div>
      

      【讨论】:

      • 不敢相信,添加边距太难了,谢谢
      • 谢谢。它总是让我感到困扰,文档如何显示行间距的网格布局,但实际上并非如此:/
      猜你喜欢
      • 1970-01-01
      • 2015-03-19
      • 2021-08-19
      • 2019-05-31
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2017-08-29
      相关资源
      最近更新 更多