Bootstrap は、レスポンシブな 12 列のグリッド上に構築されています。また、そのシステムに基づく固定幅および可変幅のレイアウトも含まれています。
Bootstrap は、HTML5 doctype の使用を必要とする HTML 要素と CSS プロパティを利用します。プロジェクトのすべての Bootstrapped ページの先頭に必ず含めてください。
- <!DOCTYPE html>
- <html lang = "ja" >
- ...
- </html>
scaffolding.lessファイル内で、基本的なグローバル表示、タイポグラフィ、およびリンク スタイルを設定します。具体的には、
background-color: white;
上に設定body
@baseFontFamily
、@baseFontSize
、および@baseLineHeight
属性をタイポグラフィのベースとして使用する@linkColor
リンクの下線のみを適用します。:hover
Bootstrap 2 の時点で、従来の CSS リセットは、 Nicolas Gallagherによるプロジェクトで、 HTML5 Boilerplateも強化しているNormalize.cssの要素を利用するように進化しました。
新しいリセットは引き続きreset.lessにありますが、簡潔さと正確さのために多くの要素が削除されています。
Bootstrap で提供されるデフォルトのグリッド システムは、724px、940px (レスポンシブ CSS が含まれていないデフォルト)、および 1170px の幅でレンダリングされる12 列を使用します。767 ピクセルのビューポートより下では、列が流動的になり、垂直に積み重なっています。
- <divクラス= "行" >
- <divクラス= "span4" > ... </div>
- <divクラス= "span8" > ... </div>
- </div>
ここに示すように、基本的なレイアウトは 2 つの「列」で作成できます。各列は、グリッド システムの一部として定義した 12 の基本的な列にまたがっています。
- <divクラス= "行" >
- <divクラス= "span4" > ... </div>
- <div class = "span4 offset4" > ... </div>
- </div>
Bootstrap の静的 (非流体) グリッド システムを使用すると、ネスティングが簡単になります。コンテンツをネストするには、既存の列内に新しい.row
一連の列を追加するだけです。.span*
.span*
ネストされた行には、その親の列数まで合計される一連の列が含まれている必要があります。たとえば、入れ子になった 2 つの.span3
列は 内に配置する必要があります.span6
。
- <divクラス= "行" >
- <divクラス= "span6" >
- レベル 1 列
- <divクラス= "行" >
- <div class = "span3" >レベル 2 </div>
- <div class = "span3" >レベル 2 </div>
- </div>
- </div>
- </div>
流体グリッド システムでは、列幅に固定ピクセルではなくパーセントが使用されます。また、固定グリッド システムと同じ応答性のバリエーションがあり、主要な画面解像度とデバイスに対して適切な比率を確保します。
.row
に変更するだけで、行を流動的にし.row-fluid
ます。列はまったく同じままなので、固定レイアウトと流動レイアウトを簡単に切り替えることができます。
- <div class = "row-fluid" >
- <divクラス= "span4" > ... </div>
- <divクラス= "span8" > ... </div>
- </div>
流動グリッドでのネストは少し異なります。ネストされた列の数は、親と一致する必要はありません。代わりに、各行が親列の 100% を占めるため、列は各レベルでリセットされます。
- <div class = "row-fluid" >
- <divクラス= "span12" >
- 列のレベル 1
- <div class = "row-fluid" >
- <div class = "span6" >レベル 2 </div>
- <div class = "span6" >レベル 2 </div>
- </div>
- </div>
- </div>
変数 | デフォルト値 | 説明 |
---|---|---|
@gridColumns |
12 | 列の数 |
@gridColumnWidth |
60px | 各列の幅 |
@gridGutterWidth |
20px | 列間の負のスペース |
Bootstrap には、上記のデフォルトの 940px グリッド システムをカスタマイズするためのいくつかの変数が組み込まれています。グリッドのすべての変数は、variables.less に保存されます。
グリッドを変更する@grid*
と、3 つの変数が変更され、Bootstrap が再コンパイルされます。variables.less のグリッド変数を変更し、ドキュメントに記載されている 4 つの方法のいずれかを使用して再コンパイルします。さらに列を追加する場合は、それらの CSS を grid.less に必ず追加してください。
グリッドのカスタマイズは、デフォルト レベルの 940px グリッドでのみ機能します。Bootstrap のレスポンシブな側面を維持するには、responsive.less のグリッドもカスタマイズする必要があります。
単一の<div class="container">
.
- <本体>
- <divクラス= "コンテナ" >
- ...
- </div>
- </body>
<div class="container-fluid">
柔軟なページ構造、最小幅と最大幅、左側のサイドバーを提供します。アプリやドキュメントに最適です。
- <div class = "コンテナ流体" >
- <div class = "row-fluid" >
- <divクラス= "span2" >
- <!--サイドバーの内容-->
- </div>
- <divクラス= "span10" >
- <!--本文内容-->
- </div>
- </div>
- </div>
メディア クエリでは、さまざまな条件 (比率、幅、表示タイプなど) に基づいてカスタム CSS を使用できますが、通常はmin-width
とmax-width
.
メディア クエリは責任を持って使用し、モバイル オーディエンスの開始点としてのみ使用してください。大規模なプロジェクトの場合は、メディア クエリのレイヤーではなく、専用のコード ベースを検討してください。
Bootstrap は、1 つのファイルで少数のメディア クエリをサポートし、さまざまなデバイスや画面解像度でプロジェクトをより適切なものにするのに役立ちます。含まれるものは次のとおりです。
ラベル | レイアウト幅 | 列幅 | ガター幅 |
---|---|---|---|
スマートフォン | 480px以下 | 可変列、固定幅なし | |
スマートフォンからタブレットへ | 767px以下 | 可変列、固定幅なし | |
縦型タブレット | 768px以上 | 42ピクセル | 20px |
デフォルト | 980px以上 | 60px | 20px |
大型ディスプレイ | 1200px以上 | 70px | 30px |
デバイスがレスポンシブ ページを適切に表示するようにするには、viewport メタ タグを含めます。
- <meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
Bootstrap はこれらのメディア クエリを自動的に含めませんが、それらを理解して追加することは非常に簡単で、最小限の設定で済みます。Bootstrap のレスポンシブ機能を含めるには、いくつかのオプションがあります。
なぜそれを含めないのですか?正直なところ、すべてがレスポンシブである必要はありません。開発者にこの機能を削除するよう促すのではなく、有効にするのが最善であると考えています。
- /* 横向きの電話と下向き */
- @media (最大-幅: 480px ) { ... }
- /* 横向きのスマートフォンから縦向きのタブレットへ */
- @media (最大-幅: 767px ) { ... }
- /* 縦長のタブレットから横長およびデスクトップへ */
- @media (最小-幅: 768px )および(最大-幅: 979px ) { ... }
- /* 大きなデスクトップ */
- @media (最小-幅: 1200px ) { ... }
モバイル対応の開発を迅速に行うには、これらの基本的なユーティリティ クラスを使用して、デバイスごとにコンテンツを表示および非表示にします。
限定的に使用し、同じサイトのまったく異なるバージョンを作成することは避けてください。代わりに、各デバイスのプレゼンテーションを補完するために使用してください。
たとえば、<select>
モバイル レイアウトではナビゲーションの要素を表示できますが、タブレットやデスクトップでは表示されません。
ここに示されているのは、サポートされているクラスと、特定のメディア クエリ レイアウトに対するそれらの影響の表です (デバイスごとにラベル付けされています)。それらは にありますresponsive.less
。
クラス | 電話480px以下 | 錠剤767px以下 | デスクトップ768px以上 |
---|---|---|---|
.visible-phone |
見える | 隠れた | 隠れた |
.visible-tablet |
隠れた | 見える | 隠れた |
.visible-desktop |
隠れた | 隠れた | 見える |
.hidden-phone |
隠れた | 見える | 見える |
.hidden-tablet |
見える | 隠れた | 見える |
.hidden-desktop |
見える | 見える | 隠れた |
上記のクラスをテストするには、ブラウザーのサイズを変更するか、さまざまなデバイスにロードします。
緑のチェックマークは、クラスが現在のビューポートに表示されていることを示します。
ここで、緑色のチェックマークは、現在のビューポートでクラスが非表示になっていることを示しています。