menu
menu

キーワード検索

 

前月(11月)の人気記事トップ10

  1. ( 1 - ) 【CSS】CSSだけでドロップダウンメニュー
  2. ( 2 - ) 【Mac】Macのユーザー名とアカウント名を変更する
  3. ( 3 - ) 【jQuery】jQueryでドロップダウンメニュー
  4. ( 4 - ) 【CSS】スマホ対応CSSだけでドロップダウンメニュー
  5. ( 6 ↑) 【iPhone・iPad】iPhoneのメモリを簡単に解放する方法
  6. ( 5 ↓) 【iPhone・iPad】投稿の準備中にエラーが起きました。後でやり直してください。
  7. ( 9 ↑) 【jQuery】入門2. jQueryをHTMLに組み込む
  8. ( 8 - ) 【CSS】レスポンシブデザインのブレークポイントは⁉
  9. (10 ↑) 【Mac】iMovieの保存場所を変更する
  10. ( - ↑) 【PHP】PHPでシンプルなメールフォーム
このエントリーをはてなブックマークに追加

【CSS】Flexboxでレスポンシブなグリッドレイアウト

【CSS】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

サンプルデモはこちら
スマホでのご確認はこちらをどうぞ
QRコード


関連リンク

Flexboxでレイアウト

  • CSS Flexbox グリッドレイアウト レスポンシブデザイン
このエントリーをはてなブックマークに追加