Twitter Bootstrap - 在行之间添加顶部空间

its*_*sme 462 css twitter-bootstrap

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

Acy*_*yra 786

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

要解决此问题,请创建一个新类"top-buffer",以添加所需的标准边距.

.top-buffer { margin-top:20px; }
Run Code Online (Sandbox Code Playgroud)

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

<div class="row top-buffer"> ...
Run Code Online (Sandbox Code Playgroud)

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

its*_*sme 173

好的,只是为了让你知道发生了什么,我修复了一些新的类,正如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; }
Run Code Online (Sandbox Code Playgroud)

每当我想要的时候 <div class="row top7"></div>

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

  • 这是相同的. (69认同)
  • 我觉得这个解决方案比公认的解决方案更优雅. (13认同)
  • 如何`.top-buffer {margin-top:20px; ``与`.top30不同{margin-top:30px; }`?好吧,从任何开发者的角度来看:它是一样的.适合用例的调整不在此计算.特别是,如果OP回答了他自己的问题. (6认同)
  • 经典的17px上边距;很有用。 (2认同)

Buk*_*ksy 115

Bootstrap 3

如果需要在bootstrap中分隔行,则可以使用.form-group.这会在行的底部增加15px的余量.

在您的情况下,要获得保证金最高,您可以将此类添加到前一个.row元素

<div class="row form-group">

/* From bootstrap.css */
.form-group {
        margin-bottom: 15px;
}
Run Code Online (Sandbox Code Playgroud)

Bootstrap 4

您可以使用内置的间距类

<div class="row mt-3"></div>
Run Code Online (Sandbox Code Playgroud)

类名中的"t"使其仅适用于"顶部"侧,底部,左侧,右侧都有类似的类.该数字定义了空间大小.

  • 不,[`form-group`仍然存在](https://github.com/twbs/bootstrap/blob/v4-dev/dist/css/bootstrap.css#L1990),但是边距/填充的特殊类有已添加,可以完成工作,并有更多的选择. (3认同)

Raj*_*hra 73

对于Bootstrap 4,应使用间距

速记实用类

采用以下格式:

{属性} {}双方 - {}大小

其中财产是一个:

  • 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个边上设置边距或填充的类

其中大小为以下之一:

  • 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">
Run Code Online (Sandbox Code Playgroud)

阅读文档以获得更多解释.在这里尝试实例.

  • 现在,Bootstrap 4发行版应该会接受这个答案。这些内置类附带了这些类,无需创建新类。 (3认同)

kur*_*man 45

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

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

所以,我建议创建"margin-bottom classes"而不是"margin-top classes",并将它们应用到上一个项目.

如果您使用Bootstrap导入LESS Bootstrap文件,请尝试使用比例Bootstrap Theme空间定义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);}  
Run Code Online (Sandbox Code Playgroud)


小智 33

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

.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; }
Run Code Online (Sandbox Code Playgroud)

<div class="container">
  <div class="row voffset2">
    <div class="col-lg-12">
      <p>
        Vertically offset text.
      </p>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


Hex*_*dus 27

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

.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; }
Run Code Online (Sandbox Code Playgroud)

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

<div class="row margin-top-20">Something here</div>
Run Code Online (Sandbox Code Playgroud)

如果您喜欢像素,那么将em更改为px以使其符合您的要求.

  • 好主意,但我抽象了数字,因为它们太具体了.如果您坚持使用s,m,l,xl,xxl等抽象,则可以通过css更改大小,而无需更改模板中的名称. (6认同)
  • `<div class ="row margin-top-20">`比`<div class"行"style ="margin-top:2.0em">`有什么好处? (3认同)

小智 9

您可以将以下类用于bootstrap 4:

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

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


She*_*LEH 5

Bootstrap 4 alpha,用于 margin-top:简写 CSS 类名称 mt-1、mt-2 (mt-lg-5、mt-sm-2) 与底部、右侧、左侧相同,并且您还有自动类 ml-汽车

    <div class="mt-lg-1" ...>
Run Code Online (Sandbox Code Playgroud)

在变量.scss 中,单位是从1到: ,这意味着如果您设置 mt-1,它会给出 0.25rem 的边距顶部。5

$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;
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多内容

https://v4-alpha.getbootstrap.com/utilities/spacing/#horizo​​ntal-centering