コンテンツをブートストラップ列の中央に配置するにはどうすればよいですか?


124

列のコンテンツを中央に配置しようとしています。それは私のために働くようには見えません。これが私のHTMLです:

<div class="row">
   <div class="col-xs-1 center-block">
       <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
   </div>
 </div>

JSFiddleデモ


1
何をしようとしているのか、span中央に.col-xs-1揃えるcol-xs-1.rowか、中央に揃えるの か。
Igor Ivancha 2016

1
列内、またはセル内のコンテンツを整列させようとしています。
マーク

馬鹿げているように見えるリスクがありますが、どの軸に沿って中央に配置しますか?
LukePuplett20年

回答:


201

使用する:

<!-- unsupported by HTML5 -->
<div class="col-xs-1" align="center">

の代わりに

<div class="col-xs-1 center-block">

ブートストラップ3cssを使用することもできます。

<!-- recommended method -->
<div class="col-xs-1 text-center">

Bootstrap 4には、コンテンツを中央に配置するflexクラスがあります。

<div class="d-flex justify-content-center">
   <div>some content</div>
</div>

デフォルトでは、そうでx-axisない場合flex-directionはそうであることに注意してくださいcolumn


1
ちなみにcol-xs-1をcol-xs-12に変更してください。これはあなたのタイプミスかもしれません。
慣性

48
<div> align属性は、HTML5ではサポートされていません。
Abeer Sul 2017

8
'align'属性がまだ使用可能であったとしても、それを長期間使用することは悪い習慣であると考えられてきました。クラス「text-center」を使用してください
Omar Abdel Bari

ありがとう!これは、ブートストラップ3メソッドを使用して私にとってもそれを解決しました。
パット・ドイル

ボタンと読み込みスピナーdivが1つあるため、「text-center」クラスは機能しませんでした。ブートストラップクラス「d-flexjustify-content-around」を追加することで解決しました。
RogerSampaio20年

81

[2020年12月更新]:5.0 Bootstrapのテスト済みおよび付属バージョン。


私はこの質問が古いことを知っています。そして、質問には、彼が使用していたBootstrapのバージョンについては触れられていませんでした。したがって、この質問に対する答えは解決されたと思います。

(私のような)誰かがこの質問に出くわし、現在のブートストラップ5.0(2020)および4.5(2019)フレームワークを使用して答えを探している場合は、ここに解決策があります。

ブートストラップ4.5および5.0

d-flex justify-content-center列divで使用します。これにより、すべてがその列の中央に配置されます。

<div class="row">
    <div class="col-4 d-flex justify-content-center">
        // Image
    </div>
</div>

列内のテキストを揃えたい場合は、 text-center

<div class="row">
    <div class="col-4 text-center">
        // text only
    </div>
</div>

列内にテキストと画像がある場合は、とを使用する必要がd-flex justify-content-centerありtext-centerます。

<div class="row">
    <div class="col-4 d-flex justify-content-center text-center">
        // for image and text
    </div>
</div>

23

ブートストラップの命名規則には独自のスタイルがあり、col-XS-1は、含まれている要素の幅の8.33%である列を参照します。あなたのテキストは、おそらく指定された幅をはるかに超えて拡大し、その中で中央に配置することはできません。divに制約したい場合は、cssword-breakのようなものを使用できます。

テキストを超えて展開するのに十分な大きさの要素内でコンテンツを中央に配置するには、2つのオプションがあります。

オプション1:HTMLセンタータグ

<div class="row">
  <div class="col-xs-1 center-block">
    <center>
      <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
    </center>
  </div>
</div>

オプション2:CSSテキスト-整列

<div class="row">
  <div class="col-xs-1 center-block" style="text-align:center;">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

すべてを列の幅に制限したい場合

<div class="row">
  <div class="col-xs-1 center-block" style="text-align:center;word-break:break-all;">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

更新-Bootstrapのテキストセンタークラスの使用

<div class="row">
  <div class="col-xs-1 center-block text-center">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

FlexBoxメソッド

<div class="row">
  <div class="flexBox" style="
    display: flex;
    flex-flow: row wrap;
    justify-content: center;">
    <span>aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
  </div>
</div>

http://jsfiddle.net/usth0kd2/13/


はい、xsの代わりにlg列を使用すると、これは機能するようです。しかし、列が1つしかない場合、その列は使用可能なスペースと同じくらいのスペースを取るべきではありませんか?3つの異なる解像度で3つのブラウザーで作業しているという事実を踏まえて、どの列を使用するかをどのように知ることができますか?
マーク

ブートストラップ列はレスポンシブパーセンテージベースの幅を利用するため、解像度に関係なくかなり類似している必要があります。ただし、分離時に幅の100%を使用する場合は、widthプロパティとmin-widthプロパティをオーバーライドする必要があります。
Sidriel 2016

17

物事を複雑にする必要はありません。Bootstrap 4では、margin autoクラスを使用して、列内でアイテムを水平方向に整列させることができます。my-auto

         <div class="col-md-6 my-auto">
           <h3>Lorem ipsum.</h3>
         </div>

17

ブートストラップ4、フレックスボックスを使用してコンテンツを水平および垂直に整列

<div class="page-hero d-flex align-items-center justify-content-center">
 <h1>Some text </h1>
</div>

ブートストラップクラスalign-items-centerとjustify-content-centerを使用します

垂直方向および水平方向に中央揃えのテキスト

.page-hero {
  height: 200px;
  background-color: grey;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<div class="page-hero d-flex align-items-center justify-content-center">
  <h1>Some text </h1>
</div>


1
これは受け入れられた答えよりもはるかに良い答えです
MahirIslam19年

7

text-center代わりに使用してくださいcenter-block

またはcenter-block、スパン要素で使用します(配置がよく見えるように、列を広くしました):

<div class="row">
   <div class="col-xs-10" style="background-color:#123;">
      <span class="center-block" style="width:100px; background-color:#ccc;">abc</span>
   </div>
</div>

3

これは簡単な方法です。

<div class="row">
  <div class="col-md-6 mx-auto">
    <p>My text</p>
  </div>
</div>

数6つのコントロールカラム。


2
//add this to your css
    .myClass{
          margin 0 auto;
          }

// add the class to the span tag( could add it to the div and not using a span  
// at all
    <div class="row">
   <div class="col-xs-1 center-block">
       <span class="myClass">aaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
   </div>
 </div>

2

col-lg-4 col-md-6 col-sm-8 col-11 mx-auto

 1. col-lg-4 ≥ 1200px (popular 1366, 1600, 1920+)
 2. col-md-6 ≥ 970px (popular 1024, 1200)
 3. col-sm-8 ≥ 768px (popular 800, 768)
 4. col-11 set default smaller devices for gutter (popular 600,480,414,375,360,312)
 5. mx-auto = always block center



1

float:none; margin:auto;スタイリングを追加して、列のコンテンツを中央に配置できます。


0

上記のいずれも機能しない場合(私の場合のように入力を中央に配置しようとしている場合)、Boostrap4オフセットを使用しました。

<div class="row">
    <div class="col-6 offset-3">
        <input class="form-control" id="myInput" type="text" placeholder="Search..">
    </div>
</div>  
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.