Bootstrap4 スターターテンプレート

2020/09/10

デザインの知識がなくてもそれなりのデザインに仕上がるBootstrap。

LaravelでもデフォルトでBootstrapが実装されています。

今まで Bootstrap3 をよくデモページとかで使っていました。

しかし、Bootstrap4 が出てきて、マージン・パディングをクラス指定できるのが魅力的で、Bootstra4に切り替えました。

そんなわけで今回は自分用として Bootstrap4 のスタートアップ用の記事をエントリーします。

 

INDEX

 

Bootstrap4 スタートアップ(コピペ用のひな形)

新規でHTMLもしくはBladeのファイルを作成して、以下を丸々コピペ。


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>タイトル</title>

    <!--Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <!--Font Awesome5-->
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css">

    <!--自作CSS -->
    <style type="text/css">
        <!--
        /*ここに調整CSS記述*/
        
        -->
    </style>
</head>
<body>
<div class="container">

<!--Bootstrapコンポーネントを記述していく-->

</div><!-- /container -->

<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" ></script>
</body>
</html>

 

Bootstrap4 からはGlyphiconというアイコンのライブラリが同梱されなくなりました。

なので、FontAwesome5もCDNで読み込んでおくといいかもしれません。

 

Laravelデモページ作成時のテンプレ

プレビュー画面

 

HTMLコード

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>ロゴ</title>

    <!--Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <!--Font Awesome5-->
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css">

    <!--自作CSS -->
    <style type="text/css">
        <!--
        /*ここに調整CSS記述*/

        /* Sticky Footer Classes */

        html,
        body {
            height: 100%;
        }

        #page-content {
            flex: 1 0 auto;
        }

        #sticky-footer {
            flex-shrink: none;
        }

        /* Other Classes for Page Styling */

        body {
            background: #007bff;
            background: linear-gradient(to right, #0062E6, #33AEFF);
        }
        -->
    </style>
</head>
<body class="d-flex flex-column">

<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark static-top">
    <div class="container">
        <a class="navbar-brand" href="#">
            <img src="http://placehold.it/150x50?text=Logo" alt="">
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Home
                        <span class="sr-only">(current)</span>
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">About</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Services</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Contact</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
<!-- / Navigation -->

<!-- Page Content -->
<div id="page-content">
    <div class="container text-center">
        <div class="row justify-content-center">
            <div class="col-md-7">
                <h1 class="font-weight-light mt-4 text-white">Bootstrap Startup kit</h1>
                <p class="lead text-white-50">
                    このページでは「Bootstrap Snippets」の「Flexbox Sticky Footer」と「Bootstrap4 Navbar with Logo Image」を使って構成しています。<br><br>
                    Laravelの学習の際にデモページとしてお使いください。
                </p>
            </div>
        </div>
    </div>
</div>
<!-- / Page Content -->

<!-- Footer -->
<footer id="sticky-footer" class="py-4 bg-dark text-white-50">
    <div class="container text-center">
        <small>Copyright &copy; Your Website</small>
    </div>
</footer>
<!-- / Footer -->

</body>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" ></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" ></script>
</body>
</html>

 

Bootstrap臭が気になる方は Sass でカスタマイズするのもいいかもしれません。

 

グリッドシステムについて

ポイント
  • <div class="container">(固定枠)または<div class="container-fluid">(流動枠)で囲む
  • 上記のcontainerクラスの中で<div class="row">で一行を定義する
  • 上記のrowクラスの中で<div class="col-{prefix}-{列数}">で何分割するか定義する
  • 列数は合計が12になるようにする

 

prefix(プレフィックス)
デバイスの幅 極小縦モバイルサイズ<576px 横モバイルサイズ≥576px タブレットサイズ≥768px デスクトップサイズ≥992px 特大大画面サイズ≥1200px
コンテナの最大幅 なし(自動) 540px 720px 960px 1140px
クラス名 .col- .col-sm- .col-md- .col-lg- .col-xl-
列の数 12
左右脇の空白幅 30px(それぞれの側に15pxずつ)

 

使用例

<div class="container">
  <div class="row">
    <div class="col-sm-3">
      3つの列の1列目
    </div>
    <div class="col-sm-6">
      3つの列の2列目
    </div>
    <div class="col-sm-3">
      3つの列の3列目
    </div>
  </div>
</div>

 

レスポンシブ・ブレイクポイント


/* 小デバイス(横向きモバイル、576px 以上) */
@media screen and (min-width: 576px) { ... }

/* 中デバイス(タブレット, 768px 以上)*/
@media screen and (min-width: 768px) { ... }

/* 大デバイス(デスクトップ, 992px 以上)*/
@media screen and (min-width: 992px) { ... }

/* 特大デバイス(ワイド・デスクトップ, 1200px 以上)*/
@media screen and (min-width: 1200px) { ... }

 

逆方向(指定の画面サイズ以下)に進むメディアクエリを使用:


/* 極小デバイス(縦向きモバイル、 576px 未満)*/
@media screen and (max-width: 575.98px) { ... }

/* 小デバイス(横向きモバイル、 768px 未満)*/
@media screen and (max-width: 767.98px) { ... }

/* 中デバイス(タブレット、 992px 未満)*/
@media screen and (max-width: 991.98px) { ... }

/* 大デバイス(デスクトップ、 1200px 未満)*/
@media screen and (max-width: 1199.98px) { ... }

 

カラムの順番をPC版・スマホ版で入れ替える

カラムの順番をPCとスマホで入れ替えたい場合です。


<main class="container">
 <div class="row">
   <div class="col-lg-6 col-md-6 order-md-2">
  # 1番目
   </div>

   <div class="col-lg-3 col-md-3 order-md-1">
  # 2番目
   </div>

   <div class="col-lg-3 col-md-3 order-md-3">
   # 3番目
   </div>

 </div>
</main>

 

スマホではコードの上から順に order-md-2order-md-1order-md-3 と表示させます。

PCでは order を使って order-md-1order-md-2order-md-3 と表示させます。

Bootstrap3 ではカラムの入れ替えに push pull というものがありましたが、Bootstrap4 では使えなくなりました。

 

コンポーネントのリンク集

コンポーネントは以下のサイトで上手く紹介されています。

Bootstrap4 コンポーネント(Bootstrap4移行ガイド)

Bootstrap4 チートシート

 
Bootstrap のシンプルなテンプレートは以下のページから選ぶのもいいかもしれません。

Bootstrap テンプレート

Bootstrap テーマ

 
Bootstrap にはスニペットも用意されています。ここからサイトを構築するやり方もありですね。

Bootstrap Snippets

 
以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-Bootstrap4 テンプレート, 周辺知識