Twitter Bootstrapを使用して中央揃えのコンテンツを取得するにはどうすればよいですか?


569

私は非常に基本的な例に従っています。スターターページとグリッドシステムを使用して、次のことを期待していました。

<div class="row">
  <div class="span12">
    <h1>Bootstrap starter template</h1>
    <p>Example text.</p>
  </div>
</div>

...中央揃えのテキストを生成します。

ただし、それでも左端に表示されます。何が悪いのですか?


5
「<div class = "span12">」内のテキストを中央に配置しますか、それとも「<div class = "row">」div全体をブラウザウィンドウの中央に配置しますか?
NerdFury


3
HTML互換性を気にする@Chloeの人々。<center>賛成で廃止されtext-align: center、ちなみに、ブートストラップクラスは、まさにある.text-centerラップ。
jmoss 2015年

あなたがブートストラップ4を使用している場合は、以下を参照してください。stackoverflow.com/questions/42388989/...
Zimを

回答:


690

これはテキストのセンタリング用です(これが問題でした

他のタイプのコンテンツについては、Flavienの回答を参照してください。

アップデート:Bootstrap 2.3.0+ Answer

最初の答えは、初期バージョンのブートストラップ用でした。ブートストラップ2.3.0以降では、単純にdivにクラスを指定できます.text-center


元の回答(2.3.0より前)

あなたは、2つのクラスの1、定義する必要がありrowspan12とをtext-align: centerhttp://jsfiddle.net/xKSUH/またはhttp://jsfiddle.net/xKSUH/1/を参照してください


2
行とspan12の両方でこれを試しましたが、span12内のテーブルは常に左にあります。パディングを追加すると中央に移動しますが、レスポンシブな方法で中央に配置したいと考えています。どういうわけか自動パディングを実行できますか?
ATSiem

これは機能しているようですが、なぜ定義する必要があるのでしょうか。これらはまだ定義されていませんか?私はテキストについて話しているだけです...
Akshat Jiwan Sharma

@AkshatJiwanSharma-クラスが定義されていますが、最後に見たところ、これらtext-align: centerはこれらのクラスのデフォルトではありません。通常、デフォルトはleft位置合わせです。
ScottS 2012

2.3.0より前のバージョンで.pagination-centeredも機能します:Pは、別のクラスを追加するキーストロークを節約します。
サリム14

@Sarim:実際にpagination-centeredは、htmlに別のクラスを追加する必要があります。私の2.3.0より前の回答では、すでにそこにあるクラスのプロパティ定義を拡張する必要があるだけです。また、を使用して回答のコメントを見ると、pagination-centeredそれに関連するいくつかの異議や警告が見つかります。しかし、それがあなたのケースであなたのために働くなら、それに行きます!:-)
ScottS 14

240

注:これはBootstrap 3で削除されました


Pre-Bootstrap 3では、次のpagination-centeredようなCSSクラスを使用できます。

<div class="span12 pagination-centered">
    Centered content.
</div>

クラスpagination-centeredはすでにbootstrap.css(またはbootstrap.min.css)にあり、ルールは1つだけです。

.pagination-centered{text-align:center;}

ブートストラップ2.3.0。クラスを使うだけtext-center


41
(クラス名から推測されるように)これをページ分割に固有のものとして使用することはお勧めしません。これは、ページネーションに適用するスタイルと衝突する可能性があり、ブートストラップがこのクラスが中央揃えのページネーションに対してさらに行う必要があると判断した場合、将来の更新と互換性がない可能性があります。
Dayson

4
@ lurii.kこれにより、子供を含むすべてが中心になります。外側のコンテナーを揃えるだけで、コンテナー内のすべてを左揃えにする場合はどうでしょうか。
gatzkerob

1
ブートストラップ2.3.0を使用。css class .text-centerを使用するだけ
Iurii.K

これまでで最大の答え!ブートストラップ2.3.2での作業
jQuery00 2013年

4
Bootstrap 3.0.0がこのクラスを削除したようです。.text-center親での使用は、このバージョンの正しいソリューションです。
Blazemonger 2013年

152

ここにいるほとんどの人は、テキストコンテンツだけではなく、全体div中央に配置する方法を実際に検索していると思います(これは些細なことです...)。

HTMLで中央揃えにする(text-align:centerを使用する代わりに)2番目の方法は、固定幅と自動マージン(左と右)を持つ要素を持つことです。Bootstrapでは、自動マージンを定義するスタイルは「コンテナ」クラスです。

<div class="container">
    <div class="span12">
        "Centered stuff there"
    </div>
</div>

フィドルについてはこちらをご覧ください:http : //jsfiddle.net/D2RLR/7788/


9
これは正解です。公式に文書化されています:twitter.github.com/bootstrap/scaffolding.html#layouts
Qlimax

2
@Qlimaxあなたのリンクは壊れているようです、これはあなたが2.3.2に望んだものだと思います:getbootstrap.com/2.3.2/scaffolding.html#layouts
Chris

1
私は非推奨依存関係を固定@Sebastialonso、問題を報告してくれてありがとう
Flavien Volken

列を中央に配置する場合、これは機能しません。グリッド列を中央揃えにするには、を使用しますcol-*offset-*。例:<div class="col-10 offset-1">または<div class="col-8 offset-2">
sgon00

47

アップデート2019-ブートストラップ4

「中央揃えのコンテンツ」はさまざまな意味を持ち、Bootstrapの中央揃えは元の投稿から大幅に変更されました。

水平中心

ブートストラップ3

  • text-centerdisplay:inline要素に使用されます
  • center-blockdisplay:block要素を中央に配置する
  • col-*offset-* グリッド列を中央に配置する
  • ナビゲーションバーを中央に配置するには、この回答を参照してください

デモブートストラップ3水平センタリング

ブートストラップ4

  • text-centerdisplay:inline要素にまだ使用されています
  • mx-autocenter-block中央のdisplay:block要素に置き換えます
  • offset-* または mx-autoグリッド列を中央に配置するために使用できます
  • justify-content-center中にはrowまた、中央に使用することができますcol-*

mx-auto(自動X軸マージン)を中心に説明するdisplay:block又はdisplay:flex持つ要素定義された幅を(、 、%vwpx等。)。フレックスボックスはデフォルトでグリッド列で使用されるため、さまざまなフレックスボックスのセンタリング方法もあります。

デモブートストラップ4水平センタリング


垂直中心

Bootstrap 4がデフォルトflexboxになったので、auto- marginsflexbox utils、またはdisplay utilsvertical align utilsを使用して、垂直方向の配置にさまざまなアプローチがあります。最初は "vertical align utils"は明らかなようですが、これらはインラインおよびテーブル表示要素でのみ機能します。以下は、Bootstrap 4の垂直方向の中央揃えオプションです。


1-自動マージンを使用した垂直中心:

垂直方向に中央揃えするもう1つの方法は、を使用することmy-autoです。これにより、要素がそのコンテナの中央に配置されます。たとえばh-100、行を全高にしmy-autocol-sm-12列を垂直方向に中央揃えにします。

<div class="row h-100">
    <div class="col-sm-12 my-auto">
        <div class="card card-block w-25">Card</div>
    </div>
</div>

自動マージンデモを使用した垂直中心

my-auto 垂直y軸のマージンを表し、次と同等です。

margin-top: auto;
margin-bottom: auto;

2-Flexboxを備えた垂直中心:

垂直中央グリッド列

Bootstrap 4 .rowは現在、任意の列でdisplay:flex使用align-self-centerして垂直方向に中央揃えすることができます...

       <div class="row">
           <div class="col-6 align-self-center">
                <div class="card card-block">
                 Center
                </div>
           </div>
           <div class="col-6">
                <div class="card card-inverse card-danger">
                    Taller
                </div>
          </div>
    </div>

または、align-items-center全体.rowを使用してcol-*、行のすべてを垂直方向に中央揃えにします...

       <div class="row align-items-center">
           <div class="col-6">
                <div class="card card-block">
                 Center
                </div>
           </div>
           <div class="col-6">
                <div class="card card-inverse card-danger">
                    Taller
                </div>
          </div>
    </div>

垂直中心の高さの異なる柱のデモ


3-Display Utilsを使用した垂直中心:

ブートストラップ4が有する表示utilsのために使用することができるdisplay:tabledisplay:table-celldisplay:inline、など。これらを一緒に使用することができる垂直配向utilsの整列インラインに、インラインブロック又はテーブルセル要素。

<div class="row h-50">
    <div class="col-sm-12 h-100 d-table">
        <div class="card card-block d-table-cell align-middle">
            I am centered vertically
        </div>
    </div>
</div>

Display Utils デモを使用した垂直中心


グリッドレイアウトを使用すると、次のcssの組み合わせのみが列内のdivを水平方向と垂直方向に揃え、列の最大の高さも同じ行の最大列と一致することがわかりました。 .className-of-inner-div { display: inline-block; text-align: left; padding-top: 25%; padding-bottom: 20%; margin-top: auto; margin-bottom: auto; } .className-of-Grid-column { vertical-align:middle; text-align: center; }
user3188040 2017

どうもありがとう。これは私の問題を解決します。
sgon00

できれば、各デモに賛成票を投じます。彼らは素晴らしいです。:) どうもありがとう!
Pascal、

36

Bootstrap 3.1.1には、.center-blockdivを中央揃えするためのクラスがあります。参照:http://getbootstrap.com/css/#helper-classes-centerを

コンテンツブロックのdisplay: block中央揃え要素をに設定し、を介して中央揃えしmarginます。ミックスインとクラスとして利用できます。

<div class="center-block">...</div>

または、他の人がすでに言ったように、.text-centerクラスを使用してテキストを中央揃えにします。


29

これを行う最良の方法は、CSSスタイルを定義することです。

.centered-text {
    text-align:center
}    

次に、中央揃えのテキストが必要な場合は、次のように追加します。

<div class="row">
    <div class="span12 centered-text">
        <h1>Bootstrap starter template</h1>
        <p>Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p>
    </div>
</div>

または、pタグを中央揃えにしたい場合:

<div class="row">
    <div class="span12 centered-text">
        <h1>Bootstrap starter template</h1>
        <p class="centered-text">Use this document as a way to quick start any new project.<br> All you get is this message and a barebones HTML document.</p>
    </div>
</div>

使用するインラインCSSは少ないほど良いです。


良い例です。これを使用して、Bootstrap Modalフッターのボタンを中央に配置しました。
ジャイアントエルク

13

クラス.show-gridは、リンクの例で中央揃えのテキストを適用しています。

あなたはいつでもstyle="text-align:center"あなたの行のdivまたは私が思うだろう他のクラスに追加することができます。


4
このようなインラインスタイルを追加することは、多くの場合、悪い習慣と見なされます
スペンサーウィリアムズ

2
私も同意します。それが私が「または他のクラス」とも言った理由です:)
PAULDAWG

12

2013年2月の時点で、「centred」クラスを「span」divに追加する場合があります。

<div class="container">
  <div class="row">
    <div class="span9 centred">
      This div will be centred.
    </div>
  </div>
</div>

そしてCSSへ:

[class*="span"].centred {
  margin-left: auto;
  margin-right: auto;
  float: none;
}

この理由は、span * divが左にフロートされるためです。また、「自動マージン」のセンタリング手法は、divがフロートしない場合にのみ機能します。

デモ(JSFiddle):http ://jsfiddle.net/5RpSh/8/embedded/result/

JSFiddle:http ://jsfiddle.net/5RpSh/8/


3
divが中央に配置され、応答性が高いため、これが最良の答えです。これがデモのフィドルです。答えの1つが機能しません:jsfiddle.net/r7Qgn/6
Rafi

9

Bootstrap 3を使用する場合は、.text-centerという名前の組み込みのCSSクラスもあります。それがあなたの望みです。

<div class="text-left">
    left
</div>

<div class="text-center">
    center
</div>

<div class="text-right">
    right
</div>

jsfiddleの例を参照してください。http://jsfiddle.net/ucheng/Q4Fue/


8

Bootstrap 2.3にはtext-centerクラスがあります。

<p class="text-left">Left aligned text.</p>
<p class="text-center">Center aligned text.</p>
<p class="text-right">Right aligned text.</p>

いいえ、それはテキストに対してのみ機能します。問題はメインコンテナーに関するものです
drmartin

「質問はメインコンテナーに関するものです」なぜそれを主張するのか(そして受け入れられた回答を参照)
はわかり

5

私の側では、CSSすぐに使える、覚えやすい新しいスタイルを定義します。

.center { text-align: center;}
.left { text-align: left;}
.right { text-align: right;}
.justify { text-align: justify;}
.fleft { float: left;} /*-> similar to .pull-left already existing in bootstrap*/
.fright { float: right;}  /*-> similar to .pull-right already existing in bootstrap*/
.vab { vertical-align: bottom;}
.bold { font-weight: bold;}
.italic { font-style: italic;}

それは良い考えですか?これには良い習慣がありますか?


3
滑りやすい坂道。cssは、ドキュメント構造からスタイルの問題を取り除くことになっています。これらは、間接的ではありますが、追加し直します。たぶんTBSはspan12sなどで悪い例を示します
12

滑りやすい坂道コメントに同意します。また、Twitter Bootstrap自体の使用は間違いなく滑りやすい斜面であることも付け加えておきます。
Jason Swett

4

Bootstrap 2.0以降を使用している場合

これにより、divをページの中央に配置できます。

<div class="row">
    <div class="span4 offset4">
        //your content here gets centered of the page
    </div>
</div>

11
これは要素を中央に配置しません。要素の左上隅を4列前に配置します。センタリングとは、要素の正確な中心をコンテナ要素の中心に配置することを意味します。
Cagatay Kalan 2012

3

任意のテキスト配置ユーティリティクラスは、トリックを行います。Bootstrapは.text-center、長い間、テキストの中央揃えにクラスを使用しています。

.text-center { text-align: center !important; }

または、独自のユーティリティを作成できます。私が長年見てきたいくつかのバリエーション:

.u-text-center { text-align: center !important; }
.ta-center { text-align: center !important; }
.ta\:c { text-align: center !important; }

3
pull-leftとpull-rightはクラスに与えられた要素に影響を与えるため、良いデザインではありません。定義したプルセンターは、要素の子に影響します。
Cagatay Kalan 2012

3

で調整する必要があり.spanます。

例:

<div class="container-fluid">
  <div class="row-fluid">
    <div class="span4"></div>
    <!--/span-->
    <div class="span4" align="center">
      <div class="hero-unit" align="center">
        <h3>Sign In</h3>
        <form>
          <div class="input-prepend">
            <span class="add-on"><i class="icon-envelope"></i> </span>
            <input class="span6" type="text" placeholder="Email address">
          </div>
          <div class="input-prepend">
            <span class="add-on"><i class="icon-key"></i> </span>
            <input class="span6" type="password" placeholder="Password">
          </div>
        </form>
      </div>
    </div>
    <!-- /span -->
    <div class="span4"></div>
  </div>
  <!-- /row -->
</div>

2

応答性(モバイル互換性)を維持しながら情報のブロックspan1を中央に配置するための私の好ましい方法は、中央に配置したいコンテンツの前後に2つの空のdiv を配置することです。

<div class="row-fluid">

    <div class="span1">
    </div>

        <div class="span10">
          <div class="hero-unit">
            <h1>Reading Resources</h1>
            <p>Read here...</p>
          </div>
        </div><!--/span-->

    <div class="span1">
    </div>

</div><!--/row-->

2

Bootstrapバージョン3.1.1以降の場合、コンテンツを中央に配置するのに最適なクラスは.center-blockヘルパークラスです。


はい、それは今まさにテーマであり、ユーザーは3.1.1よりも大きいブートストラップバージョンを使用しています
SAFEEN 1990

1
<div class="container">
  <div class="col-md-12 centered">
    <div class="row">
      <div class="col-md-1"></div>
       <div class="col-md-10">
           label
       </div>
      <div class="col-md-1"></div>
    </div>
  </div>
</div>

メインでコンテナ流体を使用しないでください。


あなたは持っているcentered多くの混乱を作成し、あなたのコード内のクラスを
bg17aw

興味深いアプローチですが、私の特定のWebフォームcssでは、これは良いオプションでした。
JoshYates1980 2017年

1

センターブロックも上記の回答で言及されていないオプションです

    <div class="center-block" style="width:200px;background-color:#ccc;">...</div>

クラスcenter-blockが行うことはすべて、要素に0 autoのマージンを持つように指示することです。autoは左/右マージンです。ただし、クラスtext-centerまたはcss text-align:centerを除く。親に設定されている場合、要素はこの自動計算を実行するポイントを認識しないため、期待どおりに中央に配置されません。

したがって、text-centerの方が適しています。


1

以下のタイプのいずれかを使用できます

  1. Bootstrapの既存のクラスを使用しtext-centerます。
  2. カスタムスタイルを追加しますstyle = "text-align:center"
  3. 列オフセットを使用します。

    例: <div class="col-md-offset-6 col-md-12"></div>


0

このクラスを作成して、レスポンシブ機能を維持しながら画面サイズに関係なく中央揃えを維持します。

.container {
    alignment-adjust: central;
}

0

必要なdivまたはタグにクラスtext-centerを使用するだけです。うまくいくと思います。これは、テキストの中央揃えのためのBootstrapクラスです。

ここにいくつかのテキスト整列Bootstrapクラスがあります:

text-left, text-right, text-justify, etc.
<div class="row">
 <div class="col-md-12 text-center">
  <h1>Bootstrap starter template</h1>
  <p>Example text.</p>
 </div>
</div>

0

私は2つの方法を試しましたが、divを中央に配置することはうまくいきました。どちらの方法でも、すべての画面でdivが整列します。

方法1:プッシュの使用:

<div class = "col-lg-4 col-md-4 col-sm-4 col-xs-4 col-lg-push-4 col-md-push-4 col-sm-push-4 col-xs-push-4" style="border-style:solid;border-width:1px">
    <h2>Grievance form</h2> <!-- To center this text, use style="text-align: center" -->
  </div>

方法2:オフセットの使用:

<div class = "col-lg-4 col-md-4 col-sm-4 col-xs-4 col-lg-offset-4 col-md-offest-4 col-sm-offest-4 col-xs-offest-4" style="border-style:solid;border-width:1px">
    <h2>Grievance form</h2> <!--to center this text, use style="text-align: center"-->
</div>

結果:

ここに画像の説明を入力してください

説明

ブートストラップは、指定された画面占有の最初の列を左側に指定します。オフセットまたはプッシュを使用すると、 'this'列が 'those'列だけシフトします。オフセットの反応性に問題がありましたが、プッシュは素晴らしかったです。


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