BootstrapとGrid-templateの組み合わせが超万能で最強【コピペレイアウト】

Programming

今回はBootstrapとGrid-templateを組み合わせることで出来るレスポンシブ対応レイアウトが万能すぎて最強だと思ったので紹介します。

基本パターンのみの紹介にしますがコピペで使用して頂いてOKです。このレイアウトを元に編集すれば楽になると思います。

WEB制作の初期の段階でレイアウト作成を簡単に済ませたいと考えている人は是非活用下さい。

万能レイアウト

BootstrapとGrid-templateを組み合わせるとコピペのみで以下のレイアウトが一瞬で出来ます。もちろん完璧にレスポンシブ対応がされています。

このレイアウトにはグロナビ、メインコンテンツ、右サイドバー、パンくずリスト、フッターが含まれ、全てレスポンシブになっています。

PC時の見た目
スマホ時の見た目

BootstrapとGrid-template

Bootstrapについては以下の記事を参照して読み込み方と基本的な扱い方、考え方を理解して下さい。

Grid-templateについては以下の記事を見て頂ければ基本的な考え方と技法が分かります。

また今回のレイアウトにはメインビジュアルにBootstrapの中にあるカルーセルスライダーを入れています。これを使用するのにjQueryが必要になるので、そのファイルの準備の仕方を以下の記事で理解しときましょう。

万能レイアウトのコード【コピペOK】

上記3点の基礎知識を理解した上で以下のHTMLとCSSをコピペして下さい。これだけで先程のレイアウトが完成します。

今回の方法は、Bootstrap、jQuery共にローカルに落としてアップロードしています。CDNから読み込みたい場合はその部分を差し替えて下さい。

HTML

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=yes">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Bootstrap TEST</title>
    <link rel="icon" href="favicon/favicon.jpg">
    <meta name="description" content="Bootstrap TEST">
    <!-- ブートストラップ -->
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/bootstrap-grid.min.css">
    <link rel="stylesheet" href="css/bootstrap-reboot.min.css">
    <link rel="stylesheet" href="css/styles.css">
  </head>
  <body>
    <!-- ヘッダー -->
    <header>
      <!-- グロナビ -->
      <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">グロナビ</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
              <a class="nav-link" href="#">ホーム <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">リンクA</a>
            </li>
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                ドロップダウン
              </a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                <a class="dropdown-item" href="#">リンクB</a>
                <a class="dropdown-item" href="#">リンクC</a>
                <div class="dropdown-divider"></div>
                <a class="dropdown-item" href="#">リンクD</a>
              </div>
            </li>
            <li class="nav-item">
              <a class="nav-link disabled" href="#">リンクE</a>
            </li>
          </ul>
          <form class="form-inline my-2 my-lg-0">
            <input class="form-control mr-sm-2" type="search" placeholder="検索" aria-label="search">
            <button class="btn btn-outline-success my-2 my-sm-0" type="submit">検索</button>
          </form>
        </div>
      </nav>
      <!-- メインビジュアル -->
      <div id="carouselExampleControls" class="carousel slide" data-ride="carousel">
        <div class="carousel-inner">
          <div class="carousel-item active">
            <svg class="bd-placeholder-img bd-placeholder-img-lg d-block w-100" width="800" height="400" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: メインビジュアル1"><title>メインビジュアル1</title><rect width="100%" height="100%" fill="#777"/><text x="50%" y="50%" fill="#555" dy=".3em">メインビジュアル1</text></svg>
          </div>
          <div class="carousel-item">
            <svg class="bd-placeholder-img bd-placeholder-img-lg d-block w-100" width="800" height="400" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: メインビジュアル2"><title>メインビジュアル2</title><rect width="100%" height="100%" fill="#666"/><text x="50%" y="50%" fill="#444" dy=".3em">メインビジュアル2</text></svg>
          </div>
          <div class="carousel-item">
            <svg class="bd-placeholder-img bd-placeholder-img-lg d-block w-100" width="800" height="400" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: メインビジュアル3"><title>メインビジュアル3</title><rect width="100%" height="100%" fill="#555"/><text x="50%" y="50%" fill="#333" dy=".3em">メインビジュアル3</text></svg>
          </div>
        </div>
        <a class="carousel-control-prev" href="#carouselExampleControls" role="button" data-slide="prev">
          <span class="carousel-control-prev-icon" aria-hidden="true"></span>
          <span class="sr-only">Previous</span>
        </a>
        <a class="carousel-control-next" href="#carouselExampleControls" role="button" data-slide="next">
          <span class="carousel-control-next-icon" aria-hidden="true"></span>
          <span class="sr-only">Next</span>
        </a>
      </div>
    </header>
    <!-- ヘッダー end-->
    <!-- メインコンテンツ -->
    <main>
      <nav aria-label="breadcrumb">
        <ol class="breadcrumb mb-0 p-0">
          <li class="breadcrumb-item"><a href="#">Home</a></li>
          <li class="breadcrumb-item"><a href="#">パンくず1</a></li>
          <li class="breadcrumb-item active" aria-current="page">パンくず2</li>
        </ol>
      </nav>
    <!-- カード -->
    <section>
      <div class="container">
        <div class="row">
          <div class="col-sm m-5">
            <div class="card" style="width: 18rem;">
              <svg class="bd-placeholder-img card-img-top" width="100%" height="180" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder:Image cap"><title>Placeholder</title><rect fill="#868e96" width="100%" height="100%"/><text fill="#dee2e6" dy=".3em" x="40%" y="50%">Image cap</text></svg>
              <div class="card-body">
                <h5 class="card-title">カードデザイン</h5>
                <p class="card-text">この様に簡単にカードのデザインが完成します。これもCSSは一切追加記述せずHTMLをコピペしただけです。</p>
                <a href="#" class="btn btn-primary">詳しく見る</a>
              </div>
            </div>
          </div>
          <div class="col-sm m-5">
            <div class="card" style="width: 18rem;">
              <svg class="bd-placeholder-img card-img-top" width="100%" height="180" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder:Image cap"><title>Placeholder</title><rect fill="#868e96" width="100%" height="100%"/><text fill="#dee2e6" dy=".3em" x="40%" y="50%">Image cap</text></svg>
              <div class="card-body">
                <h5 class="card-title">カード</h5>
                <p class="card-text">この様に簡単にカードのデザインが完成します。これもCSSは一切追加記述せずHTMLをコピペしただけです。</p>
                <a href="#" class="btn btn-primary">詳しく見る</a>
              </div>
            </div>
          </div>
          <div class="col-sm m-5">
            <div class="card" style="width: 18rem;">
              <svg class="bd-placeholder-img card-img-top" width="100%" height="180" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder:Image cap"><title>Placeholder</title><rect fill="#868e96" width="100%" height="100%"/><text fill="#dee2e6" dy=".3em" x="40%" y="50%">Image cap</text></svg>
              <div class="card-body">
                <h5 class="card-title">カードデザイン</h5>
                <p class="card-text">この様に簡単にカードのデザインが完成します。これもCSSは一切追加記述せずHTMLをコピペしただけです。</p>
                <a href="#" class="btn btn-primary">詳しく見る</a>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="container">
        <div class="row">
          <div class="col-sm m-5">
            <div class="card" style="width: 18rem;">
              <svg class="bd-placeholder-img card-img-top" width="100%" height="180" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder:Image cap"><title>Placeholder</title><rect fill="#868e96" width="100%" height="100%"/><text fill="#dee2e6" dy=".3em" x="40%" y="50%">Image cap</text></svg>
              <div class="card-body">
                <h5 class="card-title">カードデザイン</h5>
                <p class="card-text">この様に簡単にカードのデザインが完成します。これもCSSは一切追加記述せずHTMLをコピペしただけです。</p>
                <a href="#" class="btn btn-primary">詳しく見る</a>
              </div>
            </div>
          </div>
          <div class="col-sm m-5">
            <div class="card" style="width: 18rem;">
              <svg class="bd-placeholder-img card-img-top" width="100%" height="180" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder:Image cap"><title>Placeholder</title><rect fill="#868e96" width="100%" height="100%"/><text fill="#dee2e6" dy=".3em" x="40%" y="50%">Image cap</text></svg>
              <div class="card-body">
                <h5 class="card-title">カード</h5>
                <p class="card-text">この様に簡単にカードのデザインが完成します。これもCSSは一切追加記述せずHTMLをコピペしただけです。</p>
                <a href="#" class="btn btn-primary">詳しく見る</a>
              </div>
            </div>
          </div>
          <div class="col-sm m-5">
            <div class="card" style="width: 18rem;">
              <svg class="bd-placeholder-img card-img-top" width="100%" height="180" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder:Image cap"><title>Placeholder</title><rect fill="#868e96" width="100%" height="100%"/><text fill="#dee2e6" dy=".3em" x="40%" y="50%">Image cap</text></svg>
              <div class="card-body">
                <h5 class="card-title">カードデザイン</h5>
                <p class="card-text">この様に簡単にカードのデザインが完成します。これもCSSは一切追加記述せずHTMLをコピペしただけです。</p>
                <a href="#" class="btn btn-primary">詳しく見る</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>
  </main>
  <!-- サイドバー -->
  <aside>
    <div>サイドバー</div>
  </aside>
  <!-- フッター -->
  <footer>
    <div>フッター</div>
  </footer>
  <script type="text/javascript" src="js/jQuery.js"></script>
  <script type="text/javascript" src="js/bootstrap.bundle.min.js"></script>
  <script type="text/javascript" src="js/bootstrap.min.js"></script>
  </body>

CSS

body {
    display: grid;
    grid-template:
     "... header header header ..." auto
     "... main   main   right ..." 1fr
     "... footer footer footer ..." 50px
     / auto 1fr 1fr 300px auto;
 }
 @media screen and (max-width: 1000px){
    body{
      grid-template: 
      "header" auto
      "main" 1fr
      "right " auto
      "footer" 100px
      ;
    }
  }
 header {
    grid-area: header;
    background-color: brown;
  }
   
  main {
    grid-area: main;
    background-color: chartreuse;
  }
   
  aside {
    grid-area: right;
    background-color: gold;
  }
   
  footer {
    grid-area: footer;
    background-color: #777;
  }

上手くいかない場合は、Bootstrap、jQuery、stylesシートが置かれている場所を確認して下さい。上記の記述で配置されているパスにおいて下さい。またgrid-templateの名前とレイアウトした要素を一致させないと上手くいきません。再度名前が一致しているか確かめましょう。


以上が「BootstrapとGrid-templateの組み合わせが超万能で最強【コピペレイアウト】」でした。

この2つを理解するとレイアウトに困ることは一切なくなります。ただし注意点としてIEに対応出来ない点があるので気にする方には向いていません。

この記事を書いた人
KEITO

AI × IT × WEB3|関東在住。本職はディレクター 。AIを活用してビジネス開拓。仕事の依頼はTwitterからお願いします。YouTube、Twitter、Instagramもお願い致します。

Programming
この記事を共有する
スポンサーリンク
スポンサーリンク
KT LIFE
スポンサーリンク

暗号資産投資するなら以下

Bybit

国内人気No.1!屈強なサーバー/信頼性抜群!トレーダー御用達の取引所。

通貨数338種以上
レバレッジ最大100倍
現物取引手数料Maker:0%〜0.1%
Taker:0.02%〜0.1%
先物取引手数料Maker:0%〜0.01%
Taker:0.03%〜0.06%
操作性スマホでも取引・入金できる
口座開設簡単に口座開設できる
日本語対応日本語対応あり・JPY利用可
特典下記から登録で初回ボーナスあり
登録リンクBybitへの登録は こちら
招待コード22295
レビュー記事レビュー記事は こちら
BigBoss&CRYPTOS

最大レバレッジ1111倍・日本円換金ルート

通貨数BigBoss:15種以上
CRYPTOS:15種以上
レバレッジ最大1111倍
スポット手数料Maker:0.02%〜0.18%
Taker:0.05〜0.20%
先物取引手数料
操作性スマホでも取引・入金できる
口座開設少し敷居が高い
日本語対応日本語対応あり
特典下記から登録で初回ボーナスあり
登録リンクBigBossへの登録は こちら
招待コード6690951
レビュー記事レビュー記事は こちら
Nexo

高APYでのステーキング&レンディング

通貨数60種以上
レバレッジ
スポット手数料Maker:0.04%〜0.20%
Taker:0.03%〜0.20%
先物取引手数料
操作性スマホでも取引・入金できる
口座開設簡単に口座開設できる
日本語対応日本語対応あり
特典下記から登録で初回ボーナスあり
登録リンクNexoへの登録は こちら
招待コード
レビュー記事レビュー記事は こちら

他おすすめ取引所はこちら

タイトルとURLをコピーしました