8月更新・前月(7月)の人気記事トップ10 08/02/2022
- ( 01 – ) 【Mac】MacにGoogle Driveをインストール
- ( 04 ↑) 【iPhone / iPad】iPhoneでSuicaをクレジットカード無しで使う方法
- ( 02 ↓) 【Mac】Macのユーザー名とアカウント名を変更する
- ( 04 – ) 【jQuery】入門2. jQueryをHTMLに組み込む
- ( 06 ↑) 【jQuery】入門5. jQueryで日時を表示
- (圏外↑) 【Labs】position:absoluteとwidth:100%を指定すると横幅の設定がうまくいかない場合の対処方法について
- (圏外↑) 【Guide】画面解像度一覧表
- (圏外↑) 【Mac】Time Machineの初回バックアップ完了を待機中でバックアップが終わらない場合はこれで解決!
- (10↑) 【Labs】クリックしやすいラジオボタンとチェックボックス
- (圏外↑) 【Inkscape】InkscapeでCMYKカラーを表示する
【Labs】Flexboxでレスポンシブデザイン グリッドレイアウト
こんにちは(・∀・)
今回はFlexboxでグリッドレイアウトを作ってみます。レスポンシブデザインでブレークポイントはスマホ・タブレット・PCの3つです。
以前CSSだけでグリッドレイアウトを作ってみましたが子要素の高さを固定にしないとグリッドレイアウトとしてうまく機能しなかったためなかなか使いづらかったのですが、高さの指定をする必要のないFlexboxは、まさにグリッドレイアウトのためにあるようなものですね
サンプル
要素の大きさは2種類です。スマホとタブレットでは横幅300pxと145pxの要素を並べています。PCでは横幅455pxと300pxの要素を並べています。box-sizing:border-boxを指定してあります。
HTML
<div id="contents">
<div class="g1">
<h5>grid1</h5>
<!--grid--></div>
<div class="g1">
<h5>grid2</h5>
<!--grid--></div>
<div class="g2">
<h5>grid3</h5>
<!--grid--></div>
<div class="g2">
<h5>grid4</h5>
<!--grid--></div>
<div class="g2">
<h5>grid5</h5>
<!--grid--></div>
<div class="g2">
<h5>grid6</h5>
<!--grid--></div>
<div class="g2">
<h5>grid7</h5>
<!--grid--></div>
<div class="g2">
<h5>grid8</h5>
<!--grid--></div>
<div class="g1">
<h5>grid9</h5>
<!--grid--></div>
<div class="g1">
<h5>grid10</h5>
<!--grid--></div>
<div class="g2">
<h5>grid11</h5>
<!--grid--></div>
<div class="g2">
<h5>grid12</h5>
<!--grid--></div>
<div class="g2">
<h5>grid13</h5>
<!--grid--></div>
<div class="g2">
<h5>grid14</h5>
<!--grid--></div>
<div class="g2">
<h5>grid15</h5>
<!--grid--></div>
<div class="g2">
<h5>grid16</h5>
<!--grid--></div>
<div class="g1">
<h5>grid17</h5>
<!--grid--></div>
<div class="g1">
<h5>grid18</h5>
<!--grid--></div>
<!--contents--></div>
CSS
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
#contents {
width: 320px;
margin: 0 auto;
padding: 5px;
background: #ccc;
display: flex;
flex-wrap: wrap;
}
.g1 {
width: 300px;
background: #9fb7d4;
margin: 5px;
padding: 10px;
}
.g2 {
width: 145px;
background: #afc6e2;
margin: 5px;
padding: 10px;
}
/* ** */
@media (min-width: 640px) {
#contents {
width: 640px;
padding: 5px 10px;
background: #ccc;
}
/* ** */}
@media (min-width: 960px) {
#contents {
width: 960px;
padding: 10px 15px;
background: #afc6e2;
}
.g1 {
width: 455px;
}
.g2 {
width: 300px;
}
/* ** */}
Result
サンプルデモはこちら
スマホでのご確認はこちらをどうぞ