menu
menu

キーワード検索

 

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

  1. ( 1-) CSSだけでドロップダウンメニュー
  2. ( 2-) CSSだけでサイズ可変・スマホ対応のアコーディオン
  3. ( 3-) スマホサイトの作成・基本編
  4. ( 4-) CSSだけでブロック要素の表示非表示(トグルボタン)
  5. ( 7↑) jQueryで日時を表示【実践でjQuery入門】
  6. ( 5↓) 表示しているブラウザの高さを取得してCSSのheightに指定
  7. ( 9↑) スマホサイト向け横にスクロールするナビゲーション
  8. ( 8-) HTML5・ページ作成の基本
  9. ( -↑) Windows 10にMySQLをインストール
  10. ( -↑) 変数を宣言する【jQuery入門】

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

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


関連リンク

Flexboxでレイアウト

  • カテゴリー:Labs