ブートストラップレスポンシブページで、divを中央に配置する方法


132

レスポンシブページの中央にdivを配置する

以下のレイアウトのように、ページの中央にdivを配置して、ブートストラップを使用してレスポンシブページを作成する必要があります。



私はバイオリンでサンプルコードを取得することができれば便利layout.it中などのdiv要素を中心になり、別の全幅COL-LG-12の内側に存在しなければならないテキスト(ブートストラップを使用して応答デザイン)とのdiv要素をセンタリングする必要があります
ラマプリヤ

回答:


173

Bootstrap 4のアップデート

フレックスボックスによるよりシンプルな垂直グリッド配置

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css');
html,
body {
  height: 100%
}
<div class="h-100 row align-items-center">
  <div class="col" style="background:red">
    TEXT
  </div>
</div>

Bootstrap 3のソリューション

@import url('http://getbootstrap.com/dist/css/bootstrap.css');
 html, body, .container-table {
    height: 100%;
}
.container-table {
    display: table;
}
.vertical-center-row {
    display: table-cell;
    vertical-align: middle;
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.0/bootstrap.min.js"></script>

<div class="container container-table">
    <div class="row vertical-center-row">
        <div class="text-center col-md-4 col-md-offset-4" style="background:red">TEXT</div>
    </div>
</div>

これは、すべての画面サイズで中央揃えの水平および垂直divの簡単な例です。


41
たぶんclass="col-xs-4 col-xs-offset-4"それで十分でしょう。
L105 2013年

すべての画面サイズでdiv col-lg-12を垂直方向の中央に配置する必要があります
Rama Priya

1
私はあなたがこのフィドルをチェックするための解決策を見つけましたjsfiddle.net/Palapas/52VtD/687 コンテナの高さは100%でなければなりません。そうでなければ、絶対位置を使用する必要があります
ppollono

45

CSS:

html,
body {
    height: 100%;
}

.container {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

HTML:

<div class="container">
  <div>
    example
  </div>
</div>

フィドルの例


1
このソリューションは、モバイルでサイトを開いたときに機能しません。
codeinprogress 2017年

2
こんにちは、ご使用のブラウザは何ですか。BootstrapのスタイルシートとJavaScriptをロードしましたか?FirefoxとChromeで動作しています。すべての画面サイズでテスト済み。
ボーカレス2017年

ブラウザーのサイズを変更し、応答性の高いWebサイトチェッカーを使用して、これをテストしました。私のために働く。
ロッキーケフ2017

1
この修正により、ブートストラップのデフォルトスタイルが壊れます
ppollono

21

、ブートストラップ4

子を水平方向中央揃えにするするには、bootstrap-4クラスを使用します

justify-content-center

子を垂直方向中央揃えにする、bootstrap-4クラスを使用します

 align-items-center

ただし、これらと一緒にd-flexクラスを使用することを忘れないでください。これは、bootstrap-4ユーティリティクラスです。

<div class="d-flex justify-content-center align-items-center" style="height:100px;">
    <div class="bg-primary">MIDDLE</div>    
</div>

注:このコードが機能しない場合は、bootstrap-4ユーティリティを必ず追加してください


11

Bootstrap 4のアップデート

Bootstrap 4がフレックスボックスになったので、垂直方向の配置が簡単になりました。フルハイトのフレックスボックスdivが与えられた場合、my-auto上部と下部のマージンも同じように...

<div class="container h-100 d-flex justify-content-center">
    <div class="jumbotron my-auto">
      <h1 class="display-3">Hello, world!</h1>
    </div>
</div>

http://codeply.com/go/ayraB3tjSd/bootstrap-4-vertical-center


Bootstrap 4の垂直方向の中央


5

CSSで何も変更する必要はありません。これをクラスで直接書くと、結果が得られます。

<div class="col-lg-4 col-md-4 col-sm-4 container justify-content-center">
  <div class="col" style="background:red">
    TEXT
  </div>
</div>

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


4

表示テーブルとブートストラップなしで、私はむしろそれをやりたい

<div class="container container-table">
    <div class="row vertical-center-row">
        <div class="text-center col-md-4 col-md-offset-4" style="background:red">TEXT</div>
    </div>
</div>


 html, body, .container-table {
    height: 100%;
}
.container-table {
    width:100vw;
  height:150px;
  border:1px solid black;
}
.vertical-center-row {
   margin:auto;
  width:30%;
  padding:63px;
  text-align:center;

}

http://codepen.io/matoeil/pen/PbbWgQ


2

良い答えppollono。私は遊んでいただけで、少し良い解決策を得ました。CSSは同じままです。つまり、

html, body, .container {
    height: 100%;
}
.container {
    display: table;
    vertical-align: middle;
}
.vertical-center-row {
    display: table-cell;
    vertical-align: middle;
}

しかしHTMLの場合:

<div class="container">
    <div class="vertical-center-row">
        <div align="center">TEXT</div>
    </div>
</div>

これで十分でしょう。


2

最善の方法ではありませんが、引き続き機能します

<div class="container-fluid h-100">
<div class="row h-100">
<div class="col-lg-12"></div>
<div class="col-lg-12">
<div class="row h-100">
  <div class="col-lg-4"></div>
  <div class="col-lg-4 border">
    This div is in middle
  </div>
  <div class="col-lg-4"></div>
</div>

</div>
<div class="col-lg-12"></div>
</div>

</div>

1

ブートストラップでレイアウトを実現する最も簡単な方法は次のとおりだと思います。

<section>
<div class="container">
    <div class="row">
        <div align="center">
            <div style="max-width: 200px; background-color: blueviolet;">
                <div>
                    <h1 style="color: white;">Content goes here</h1>
                </div>
            </div>
        </div>
    </div>
</div>

私がしたことは、divの中央に配置できるようにdivのレイヤーを追加することだけでしたが、パーセンテージを使用していないため、divの最大幅を中央に指定する必要があります。

これと同じ方法を使用して、複数の列を中央に配置できます。divレイヤーを追加するだけです。

<div class="container">
    <div class="row">
        <div align="center">
            <div style="max-width: 400px; background-color: blueviolet;">
                <div class="col-md-12 col-sm-12 col-xs-12" style="background-color: blueviolet;">
                    <div class="col-md-8 col-sm-8 col-xs-12" style="background-color: darkcyan;">
                        <h1 style="color: white;">Some content</h1>
                    </div>
                    <div class="col-md-4 col-sm-4 col-xs-12" style="background-color: blue;">
                        <p style="color: white;">More content</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

注:md、sm、xsの列12のdivを追加しました。これを行わないと、背景色(この場合は「blueviolet」)の最初のdivが折りたたまれ、子divが表示されます、しかし背景色ではありません。


1

Bootstrap 4.3.1の実際のバージョンの場合

スタイル

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<style type="text/css">
html, body {
    height: 100%;
}
</style>

コード

<div class="h-100 d-flex justify-content-center">
<div class="jumbotron my-auto">
<!-- example content -->
<div class="alert alert-success" role="alert">
<h4 class="alert-heading">Title</h4>
<p>Desc</p>
</div>
<!-- ./example content -->
</div>
</div

1

これを試してください。例では、固定の高さを使用しました。レスポンシブシナリオには影響しないと思います。

<html lang="en">
<head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
    <div class="d-flex justify-content-center align-items-center bg-secondary w-100" style="height: 300px;">
        <div class="bg-primary" style="width: 200px; height: 50px;"></div>
    </div>
</body>
</html>


1

Bootstrap 4では、以下を使用します。

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

必要に応じて位置を変更することもできます。

<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>

ここで参照


-1

これは、divを中央に配置する単純なCSSルールです

.centered {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center/


答えを広げてもらえますか?リンクは時間の経過とともに古くなる傾向があります。
15

2
また、これはこれを実現するための「ブートストラップ方法」ではありません。
FuriousFolder

-1

最も簡単な解決策は、以下のように両側に空白の列を1つ追加することです。

  <div class="row form-group">

    <div class="col-3"></div>

    <ul class="list-group col-6">
      <li class="list-group-item active">Yuvraj Patil</li>
    </ul>

    <div class="col-3"></div>
  </div>

-2

jsFiddle

HTML

<div class="container" id="parent">
  <div class="row">
    <div class="col-lg-12">text
      <div class="row ">
        <div class="col-md-4 col-md-offset-4" id="child">TEXT</div>
      </div>
    </div>
  </div>
</div>

CSS

#parent {    
    text-align: center;
}
#child {
    margin: 0 auto;
    display: inline-block;
    background: red;
    color: white;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.