Twitter Bootstrap-行の間に上部スペースを追加します


回答:


801

Twitterブートストラップで行を編集またはオーバーライドすることは悪い考えです。これは、これがページの足場のコア部分であり、上部マージンのない行が必要になるためです。

これを解決するには、代わりに、必要な標準マージンを追加する新しいクラス「top-buffer」を作成します。

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

そして、上部マージンが必要な行divでそれを使用します。

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

45
フレームワークではネイティブ行の編集は間違っており、新しいクラスは行クラスを補完するだけです。微妙な違いですが、Twitter Bootstrapでは行に特定のページレイアウトの役割があります。とにかく、私は手助けしようとしているだけです。私の解決策は、問題の解決策です。
Acyra 2013年

11
まさか、これらの答えは少し異なる私見です。これは、「HTMLを読みやすくするためにクラススタイルに名前を付ける」ことを取り入れ、rowSpecificForNameの代わりにhtmlのmargin-topを読み取ることができるため、より使いやすくなっています。この回答は、Twitterのブートストラップパターンに沿ったものです。
ディーン・ヒラー2013年

2
特定の垂直間隔クラスをBootstrap 4に追加する予定です:github.com/twbs/bootstrap/issues/4286
icc97

2
すべての私は、これらのコメントから学んだ開発者が非常に独断といくつかの...上を移動する2 + 3 = 5、その他3 + 2 = 5を好むされていることである
ファビオ・S.

3
@FabioS。学ぶべきことは、Bootstrapのようなフレームワークでは、ネイティブコードを編集したり上書きしたりすることは悪い考えであることです。シナリオは無限大ですが、ここにいくつかの例があります。a。)上書き-.rowクラスを上書きする場合は、プロジェクトを通過して、マージンを受け取らない行に追加のクラスを追加する必要があります。b。)ネイティブコードを編集する-職場でプロジェクトを継承し、 bootstrap4に移動します。おっとっと!何も正しくない!?これで、ブートストラップ3ファイルを調べて、前の開発者が何を変更したのかを地球上で見つけようとします。
ペロイジャ

176

次に、何が起こったのかを知らせるだけでいいので、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; }

いつでもやりたい <div class="row top7"></div>

応答性を高めるために、たとえば:Dのmargin-top:7%代わりに追加できます5px


13
このソリューションは、受け入れられているソリューションよりもはるかにエレガントだと感じています。
rdiaz82 2014年

72
同じです。
アレクサンダー2015年

@alexanderですが、より一般的です。
Ejaz

6
どう.top-buffer { margin-top:20px; }違うの.top30 { margin-top:30px; }?まあ、どの開発者の観点からも:それは同じです。ユースケースに合わせて調整することは、ここでは考慮されません。特に、OPが自分の質問に答えた場合。
アレクサンダー

2
従来の17pxの上マージン。非常に便利。
adripanico

129

ブートストラップ3

ブートストラップの行を分離する必要がある場合は、簡単に使用できます .form-group。これにより、行の下部に15pxのマージンが追加されます。

あなたのケースでは、マージントップを取得するには、このクラスを前の.row要素に追加できます

<div class="row form-group">

/* From bootstrap.css */
.form-group {
        margin-bottom: 15px;
}

ブートストラップ4

組み込みの間隔クラスを使用できます

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

クラス名の「t」は、「上」側にのみ適用され、下、左、右に同様のクラスがあります。数値はスペースサイズを定義します。


フォームグループはBS4から削除されましたか?
Z.クラ

3
いいえ、form-groupまだ存在しますが、マージン/パディングのための特別なクラスが追加されました。これは、仕事を行うことができ、より多くのオプションがあります。
Buksy

Bootstrap V 4でこれに複数の変更がありましたか?私は現在4のバージョンをmt-3使用していて、あまり使用されていませんform-group
Nick Schwaderer

これは機能するはずです。プロジェクトにリンクしたブートストラップCSSに「.mt-3」クラス定義が含まれているかどうかを確認してください。
Buksy

82

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">

詳細については、ドキュメントをご覧ください。こちらからライブサンプルをお試しください。


3
これは、Bootstrap 4のリリースで、今では受け入れられる答えになるはずです。これには、これらの組み込みクラスが付属しており、新しいクラスを作成する必要はありません。
Matt K

45

マージントップは設計上の問題を引き起こすことがあります:

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

そのため、「マージントップクラス」ではなく「マージンボトムクラス」を作成し、前のアイテムに適用することをお勧めします。

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);}  

33

これらのクラスをブートストラップスタイルシートに追加しました

.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>

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; }

上の要素から2em間隔の要素が必要な場合は、次のように使用します。

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

ピクセルを使用する場合は、emをpxに変更してください。


6
良い考えですが、具体的すぎるため、数値を抽象化しています。s、m、l、xl、xxlなどの抽象化に固執する場合は、テンプレートの名前を変更せずにcssを使用してサイズを変更できます。
Mike Purcell

1
@MikePurcell良い考えであり、それはあなたにとって正しい解決策かもしれません。しかし、私はマージンを定義するより正確な方法を好みます。pxの代わりにemを使用すると、具体的にしすぎることなくそれを達成するための緩やかな方法が得られます。
Hexodus 2015

3
<div class="row margin-top-20">以上のメリットは何<div class"row" style="margin-top: 2.0em">ですか?
icc97 2016年

@ icc97基本的に、懸念事項とは別ですが、ここでは他の意見を見ることができます:stackoverflow.com/a/2612494/1683224
Wiley Marques 2016年

@WileyMarquesこれは、たとえば(受け入れられた回答のように) "top-buffer"という名前のクラスに当てはまりますが、margin-top-20という名前のクラスには意味がありません。margin-top-20が実際に2em以外のパディングを追加することに満足していない限り、これは混乱を招くだけです。
thelem


4

マージン4のブートストラップ4アルファ:短縮CSSクラス名mt-1、mt-2(mt-lg-5、mt-sm-2)は下、右、左で同じで、自動クラスml-オート

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

単位は1toから5:です。variables.scssでは、mt-1を設定した場合、.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/#horizo​​ntal-centering


3

このクラスに.cssファイルを追加します。

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

または新しいクラスを作成して要素に追加します

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

7
ええと、CSSに触れたくないのですが、他のページにマージンのない行が必要な場合はどうなりますか?
itme

新しいクラス.rowSpecificFormを作成できます
Nielsen Ramon

2
しかし、Twitter Bootstrapには「margin-top」のみの定義済みcssクラスはありません。
Nielsen Ramon

/、感謝ニールセン:彼らは垂直forspacingいくつかのクラスをsettedなかった奇妙な、私はそれらを追加する必要があり、他の解決策はありません
itsme

8
CSSカスケードを覚えておいてください。bootstrap.cssを編集する必要はありません。
ONOZ

1

1ページだけを変更する場合は、次のスタイルルールを追加します。

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

1

Bootstrap 4 alpha +ではこれを使用できます

class margin-bottom-5

クラスは次の形式で名前が付けられます。 {property}-{sides}-{size}


1
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>

回答に説明を追加してください。説明なしで答えるのは無意味です。
ADreNaLiNe-DJ 2017

1

ブートストラップ3

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では、ブートストラップからの変数である可能性があります)



0

このコードを追加できます:

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


0

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>

1
40行のCSSに依存関係を追加しないことをお勧めします
Andrew Diamond

-3

私のトリック。それほどきれいではないが、私にとってはうまくいく

<p>&nbsp;</p>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.