【Labs】Flexboxでレスポンシブデザイン グリッドレイアウト - web design lab
にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村

【Labs】Flexboxでレスポンシブデザイン グリッドレイアウト


【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

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

関連リンク

Flexboxでレイアウト


にほんブログ村 デザインブログ Webデザインへ PVアクセスランキング にほんブログ村