【问题标题】:Add vertical whitespace using Twitter Bootstrap?使用 Twitter Bootstrap 添加垂直空格?
【发布时间】:2012-08-29 17:01:47
【问题描述】:

使用 Twitter 的 Bootstrap 添加垂直空白的最佳方法是什么?

例如,假设我正在创建一个登录页面,并且希望在某个按钮的上方和下方留出一点 (100 像素) 的空白。显然,我可以为那个特定的按钮创建一个特定的类。但是,我认为 Bootstrap 应该有一个 DRY 的方式来添加垂直空格。

【问题讨论】:

    标签: twitter-bootstrap whitespace vertical-alignment twitter-bootstrap-2


    【解决方案1】:

    Bootstrap 4/5 中有间距实用程序(BS4BS5)。

    文档摘录:

    适用于所有断点的间距实用程序,从 xsxl, 其中没有断点缩写。这是因为那些类 从min-width: 0 及以上应用,因此不受 媒体查询。但是,其余断点确实包括 断点缩写。

    这些类使用{property}{sides}-{size} 格式命名为xs{property}{sides}-{breakpoint}-{size} 用于smmdlgxl

    其中属性是以下之一:

    • m - 用于设置 margin 的类
    • p - 用于设置 padding 的类

    sides 是其中之一(请注意 BS4 和 BS5 的区别):

    • t - 用于设置 margin-toppadding-top 的类
    • b - 用于设置 margin-bottompadding-bottom 的类
    • l - 用于设置 margin-leftpadding-left (Bootstrap 4) 的类
    • s - 用于设置 margin-leftpadding-left (Bootstrap 5) 的类
    • r - 用于设置 margin-rightpadding-right (Bootstrap 4) 的类
    • e - 用于设置 margin-rightpadding-right (Bootstrap 5) 的类
    • x - 用于同时设置 *-left*-right 的类
    • y - 用于同时设置 *-top*-bottom 的类
    • 空白 - 用于在元素的所有 4 个侧面都设置了 marginpadding 的类

    其中 size 是以下之一:

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

    所以要在元素上方和下方有一些额外的垂直空间,您可以使用my-5 类。

    【讨论】:

    • 你能举一个有效类字符串的例子吗?
    【解决方案2】:

    我知道这是旧的,并且已经发布了几个很好的解决方案,但是一个对我有用的简单解决方案是以下 CSS

    <style>
      .divider{
        margin: 0cm 0cm .5cm 0cm;
      }
    </style>
    

    然后在你的html中创建一个div

    <div class="divider"></div>
    

    【讨论】:

      【解决方案3】:

      我只是使用不同的高度创建了一个 div 类,即

      <div class="divider-10"></div>
      

      CSS 是:

      .divider-10 {
          width:100%; 
          min-height:1px; 
          margin-top:10px; 
          margin-bottom:10px;  
          display:inline-block; 
          position:relative;
      }
      

      只需为需要的高度创建一个分隔器类。

      【讨论】:

        【解决方案4】:

        在 v2 中,没有内置任何东西来容纳这么大的垂直空间,因此您需要坚持使用自定义类。对于较小的高度,我通常只是在按钮周围放置一个&lt;div class="control-group"&gt;

        【讨论】:

        • 谢谢。我现在创建了一些 spacer10、spacer50 等用于此用途的类。我看到 github 中已经有一个功能请求:bit.ly/R9oap9
        • @Ryan:很好,没有看到拉取请求。我对此有点矛盾。 Bootstrap 几乎完全是展示性的(也很方便),但如果你眯着眼睛忽略所有额外的 HTML,你可以从中派生语义。垂直间距纯粹是为了展示,所以我认为最好使用自定义类/ID。
        • 这是针对 v2 的,但似乎 v3 已将.btn-toolbar 周围的间距最小化,因此您应该添加一个具有自己边距的新类。
        • 显然 github 功能请求已关闭,该功能可能会进入 Bootstrap v4。 bit.ly/R9oap9
        【解决方案5】:

        只需使用&lt;br/&gt;。我发现自己在这里寻找这个问题的答案,然后觉得有点愚蠢,因为没有考虑使用用户 JayKilleen 在评论中建议的简单换行符。

        【讨论】:

        • 缺点是你没有得到 exact 100px 的控制,但它肯定可以增加合理的空间。
        • @mix3d,你就在那儿,一开始我没有注意到他在乎它是否正好是 100px。我以为他只是想要一个“一点”。他绝对可以像大家建议的那样制作自己的助手类。但由于这篇文章已有多年历史,他现在可以升级到 bootstrap 4 以实现精确间距,或者从中获取帮助类。
        【解决方案6】:

        我的把戏。不优雅,但它有效:

        <p>&nbsp;</p>
        

        【讨论】:

        • @JayKilleen +1 您应该将其发布为答案。也许人们开始依赖框架并开始忘记基础知识。
        【解决方案7】:
        <form>
         <fieldset class="form-group"><input type="text" class="form-control" placeholder="Input"/></fieldset>
         <fieldset class="form-group"><button class="btn btn-primary"/>Button</fieldset>
        </form>
        

        http://v4-alpha.getbootstrap.com/components/forms/#form-controls

        【讨论】:

        • 这个问题的答案如何?
        • 它添加了原始海报所要求的垂直间距,引导开发人员现在也在 beta 状态的最新版本 (4) 中迎合它。这实际上是正确的答案,如果您在引导程序中搜索垂直间距,您会发现它以前没有得到满足。请不要对您没有测试或搜索过的东西投反对票。
        • 你显然没有阅读这个问题。 “我想要某个按钮上方和下方的一点(100 像素)空白区域。”某个按钮……某个按钮……
        • 在此之前他说:“例如,让我们说”。这只是一个例子,不是具体问题。不要断章取义。我提供的例子很丰富,我提供的所有信息都足够了。
        【解决方案8】:

        我知道这是旧的,但我来到这里寻找同样的东西,我发现 Bootstrap 有帮助块,非常适合这些情况:

        <div class="help-block"></div>
        

        【讨论】:

          【解决方案9】:

          很抱歉在这里挖了一个旧坟墓,但为什么不这样做呢?

          <div class="form-group">
              &nbsp;
          </div>
          

          它将添加一个正常表单元素高度的空间。

          似乎表单上的 1 行大约是 50 像素(我刚刚检查的元素上是 47 像素)。这是一个横向的表格,左边 2col 有标签,右边 10col 有输入。所以你的像素可能会有所不同。

          因为我的基本上是 50px,我会创建一个 50px 高的间隔器,没有边距或填充;

          .spacer { margin:0; padding:0; height:50px; }
          <div class="spacer"></div>
          

          【讨论】:

          • 这会在组下方而不是上方添加空间
          • 当然可以,这正是他所要求的,一种添加垂直空白的方法。如果您需要自定义表单组或行甚至按钮,请创建自己的类以添加到其中,覆盖边距。即: class="form-group spaced-group" 和 ".spaced-group { margin-top: 15px !important; margin-bottom: 15px !important; }.. 这只是常见的 css-sense。
          • OP特别问:“在某个按钮上方下方有一点(100px)的空白”
          • 不,这是一个例子,不是他的问题。他的问题是“使用 Twitter 的 Bootstrap 添加垂直空白的最佳方法是什么?” - 垂直空格不同于特定元素的边距。如果他对所有按钮都这样做,他可以改变 btn 的边距,或者用他想要的边距使他自己的类像“btn-spaced”。如果他只是想在他想要的任何地方添加一个间隙,那么像我回答的那样一个固定高度的垫片就是他需要的。他问了一个问题,并举了另一个例子。我认为他对 CSS 的了解足以知道他可以覆盖边距。
          • 既然他说的是 DRY 方法和按钮,那么我将创建一个具有我想要的边距的按钮类:btn-spaced。如果它不仅适用于按钮,那么一般的边距将适用于行、表单组等。像 class="row space-small" 或 class="form-group space-medium".. small medium 和 large 只是边距的变体,几乎可以应用于任何东西。 - 很难说 op 想要哪个。仅适用于按钮或仅适用于任何元素..
          【解决方案10】:

          包装有效,但当你只想要一个空间时,我喜欢:

          <div class="col-xs-12" style="height:50px;"></div>
          

          【讨论】:

          • 在使用 Bootstrap 时添加内联样式通常不是一个好主意。它至少应该进入 CSS。
          • 请注意,“col-xs-12”与完全没有类完全一样
          • 不是一个好主意。 “使用 Twitter 的 Bootstrap 添加垂直空白的最佳方法是什么?”... 而是定义自定义类会更好地避免内联样式。
          【解决方案11】:

          对于版本 3,似乎没有“引导”方式来巧妙地实现这一目标。

          panelwellform-group 都提供了一些垂直间距。

          显然,更正式的特定垂直间距解决方案在 bootstrap v4 的路线图上

          https://github.com/twbs/bootstrap/issues/4286#issuecomment-36331550 https://github.com/twbs/bootstrap/issues/13532

          【讨论】:

          • .form-group 似乎是最佳选择,因为 CSS 仅限于 margin-bottom:15px。如果您只想添加一些间距,则不应使用 .well 和 .panel,因为它们具有其他属性(例如背景、填充、边框等)
          【解决方案12】:

          我尝试使用&lt;div class="control-group"&gt;,但它并没有改变我的布局。它没有增加垂直空间。对我有用的解决方案是:

          <ol style="visibility:hidden;"></ol>
          

          如果这不能为您提供足够的垂直空间,您可以通过添加嵌套的&lt;li&gt;&amp;nbsp;&lt;/li&gt; 标签逐步获得更多空间。

          【讨论】:

          • 谢谢,无论有没有 Bootstrap,您的建议都适用。但问题是关于使用 Twitter Bootstrap 添加间距。
          【解决方案13】:

          没有什么比干燥更干燥了

          .btn {
              margin-bottom:5px;
          }
          

          【讨论】:

          • 我建议不要修改基本引导 css 类的样式。
          • @JamesPalawaga +1。但是,如果这要成为整个应用程序的通用标准,您可以使用 LESS 和变量和/或仔细管理的覆盖样式表来覆盖引导样式。
          猜你喜欢
          相关资源
          最近更新 更多
          热门标签