Bootstrapでコンテナを垂直方向にセンタリングする方法は?
ジャンボトロン内のcontainer
divを垂直方向にセンタリングして、ページの真ん中に設定する方法を探しています'。
.jumbotronは、画面の高さと幅に完全に合わせなければならない。container
div は幅が 1025px
で、ページの中央(縦方向中央)に配置する必要があります。
このページでは、ジャンボトロンを画面の高さと幅に合わせ、コンテナをジャンボトロンに対して垂直方向に中央に配置したいです。どうすれば実現できるでしょうか?
314
9
The Flexible box way
フレキシブルボックスレイアウト]1を使用することで、縦方向の配置が非常に簡単になりました。現在、この方法はInternet Explorer 8 & 9を除くWebブラウザの幅広い範囲でサポートされている。
以下では、それをたった3行のテキストで実現する方法を紹介します(古いフレックスボックスの構文に関係なく)。
注:.jumbotron
を変更する代わりに、追加のクラスを使用して垂直方向の整列を達成する方がよいでしょう。例えば、
vertical-center`クラス名を使用します。[Example Here][5] (A Mirror on jsbin).
重要な注意事項 (デモで考慮):
1.height
や
min-heightプロパティの*percentage*値は、親要素の
heightに対する相対値なので、明示的に親の
height`を指定する必要があります。2.ベンダープレフィックス/旧フレックスボックス構文は、簡潔にするために掲載したスニペットでは省略されていますが、オンラインの例では存在しています。
3.Firefox 9のような古いWebブラウザでは、フレックスコンテナ(この場合は
.vertical-center
)が親の中の空きスペースを占有しないため、width
プロパティを以下のように指定する必要があります:width: 100%` のように指定します。4.また、上記のように一部のウェブブラウザでは、フレックスアイテム(この場合は
.container
)が水平方向の中央に表示されないことがあります。これは、フレックスアイテムに適用されるauto
の左右のmargin
が効果を発揮していないようです。そのため、
box-pack / justify-content
で整列させる必要があります。カラムの垂直配置の詳細については、以下のトピックを参照してください:
レガシーなウェブブラウザのための伝統的な方法
この質問に回答した当時に書いた古い回答です。この方法は、こちらで議論されており、Internet Explorer 8と9でも動作することになっています。簡単に説明します:
インラインフローでは、
vertical-align: middle
宣言により、インラインレベル要素を垂直方向に中央揃えにすることができる。W3C]9からの仕様:親要素(この場合は
.vertical-center
要素)が明示的にheight
を持つ場合、ひょっとして親と全く同じheight
を持つ子要素があれば、フルハイトの子の中点に 親のベースラインを移動 できるので、意外にも目的の流入子(.container
)を垂直方向の中央に揃えることができます。まとまる
とはいえ、
.vertical-center
内に::before
または::after
擬似要素でフルハイトの要素を作成し、その要素ともう一つの子である.container
のデフォルトのdisplay
タイプをinline-block
に変更することができます。次に、
vertical-align: middle;
を使って、インライン要素を縦に揃えます。お待たせしました:
【ワーキングデモ】11です。
また、非常に小さな画面での予期せぬ問題を防ぐために、必要に応じて擬似要素の高さを
auto
または0
にリセットしたり、そのdisplay
タイプをnone
に変更することができます:**デモ更新*****。
そしてもうひとつ:
コンテナの周囲に
footer
/header
のセクションがある場合、その要素を適切に配置し (relative
,absolute
? up to you.) 、高いz-index
値を追加して(保証のために)常に他の要素の上に置いておく方がよいでしょう。2019年更新。 ------。
Bootstrap 4 にはフレックスボックスが含まれているため、垂直方向のセンタリングの方法ははるかに簡単で、追加のCSSは必要ありません。
d-flex
およびalign-items-center
ユーティリティクラスを使用してください。.http://www.codeply.com/go/ui6ABmMTLv。
重要:垂直方向の中心は高さに対してです。 中心に配置しようとしているアイテムの親コンテナには、定義された高さが必要です。 ページの高さが必要な場合は、親に「vh-100」または「min-vh-100」を使用します。! 例:
Bootstrap.cssを追加し、次のコードをあなたのcssに追加してください。
ブートストラップ4 :
子供を水平に中心に置くには、bootstrap-4クラスを使用します。
子供を垂直に中心に置くには、bootstrap-4クラスを使用します。
ただし、これらで d-flex クラスを使用することを忘れないでください。 それは、ブートストラップ4ユーティリティクラスです。
注:このコードが機能しない場合は、必ずbootstrap-4ユーティリティを追加してください。
私はそれがこの質問への直接の答えではないことを知っていますが、それは誰かを助けるかもしれません。
私の得意とする技法.
デモ
IE、Firefox、Chromeでテストされています。
。
。
https://css-tricks.com/centering-css-complete-guide/にあります。
bootstrap4の少数のアイテムの垂直中心。
d-flex フレックスルール用。
フレックスカラムアイテムの垂直方向。
justify-content-center センタリング用。
style = 'height:300px;' は、中心が計算されるか、 h-100 クラスを使用する設定ポイントに対して必要です。
次に、水平中心 div d-flex asjustice-content-center の場合。 そしていくつかのコンテナ。
つまり、3つのタグの階層があります。div-column -> div-row -> div-container。
Bootstrap 4を使用している場合は、2 divを追加するだけです。
。
。
クラス:d-table、d-table-cell、w-100、h-100、align-middleが機能します。
コンテンツを垂直に配置するために使用する方法は次のとおりです-ブートストラップ3行のトップ/センター/ボトム。 同じ高さで垂直に配置されたブートストラップ3カラム。
。
。
[JSFiddle][1]デモです。