多くの web ページは、カラムに分割されることを意味するグリッドビューに基づいています:
Web ページをデザインするときに、グリッドビューを使用すると非常に便利で、ページへの要素の配置が簡単になります。
レスポンシブ・グリッドビューは、大抵 12 カラムから成り、幅の合計は 100% で、 ブラウザ・ウィンドウをリサイズすると、縮小や拡大します。
レスポンシブ・グリッドビューの作成を始めましょう。
まず、すべての HTML 要素の box-sizing
に border-box
プロパティを設定します。
これは、要素の幅の合計と高さの合計にパディングとボーダーが含まれていることを確認します。
CSS に次のコードを追加します:
* {
box-sizing: border-box;
}
box-sizing
プロパティの詳細については、CSS3 ボックスサイズ の章をご覧ください。
次の例は、2つのカラムを持つ、簡単な単純なレスポンシブ Web ページを示しています:
Web ページが 2 カラムだけの場合は、上記の例で問題はありません。
しかし、12 カラムを持つレスポンシブグリッドビューを使用したい場合は、Web ページをより詳細に制御する必要があります。
先ず、1 カラムの割合を計算する必要があります:100% / 12 カラム = 8.33%。
次に、class="col-"
と、セクションが何カラムにまたがるかを定義する数字から成るクラスを、12カラムそれぞれに
作成します:
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width:
100%;}
Try it Yourself ❯
このすべてのカラムは、左側にフロートするともに、15px のパディングを設定します:
[class*="col-"] {
float: left;
padding: 15px;
border: 1px solid red;
}
各行は、<div>
でラップします。各行内の数値は、合計すると必ず 12 でなければなりません:
<div class="row">
<div class="col-3">...</div>
<div class="col-9">...</div>
</div>
行内のカラムは、全て左にフローしているため、ページのフローから取り去られ、他の要素はカラムが存在しないかのように配置されます。 これを防ぐために、フローをクリアするスタイルを追加します:
.row::after {
content: "";
clear: both;
display: block;
}
見栄えを良くするために、いくつかのスタイルと色を追加します:
html {
font-family: "Lucida Sans", sans-serif;
}
.header {
background-color: #9933cc;
color: #ffffff;
padding: 15px;
}
.menu ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.menu li {
padding: 8px;
margin-bottom: 7px;
background-color :#33b5e5;
color: #ffffff;
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
}
.menu li:hover {
background-color: #0099cc;
}
Try it Yourself ❯
非常に小さい幅のブラウザ・ウィンドウにサイズを変更すると、上記例の Web ページは見映えが悪くなることに注意してください。 次の章では、これを修正する方法を学習します。