menu
menu

キーワード検索

 

最近の投稿

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

  • Labs

HTML5 & CSS3

こんにちは(・∀・)

今回は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

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

関連リンク

Flexboxでレイアウト

  • カテゴリー:Labs