「作りながら学ぶBootstrap入門」の感想・備忘録1

スポンサーリンク

kindle本「作りながら学ぶBootstrap入門」のまとめ。

点数

76点

感想

サンプルコードがたくさん掲載されてるが、細かい説明は少なかった。

それでも簡単にランディングページを作ることができたので、可もなく不可もなくという感じの内容だった。

なおBootstrap4が使われているため、Bootstrap5を使う場合は注意が必要である。

ナビゲーションバー

ナビゲーションバー

  • 背景色を黒にする場合は、navに.navbar-dark, .bg-darkを指定する。
  • 上部に固定する場合は、navに.fixed-topを指定する。
    (navバーの高さが56pxなので、その下にあるコンテンツはpadding-top: 56pxとする)
  • navbarは横幅を小さくするとハンバーガーメニューとなる。
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
  <a class="navbar-brand" href="#">テストサイト</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav">
      <li class="nav-item active"><a class="nav-link" href="#">Home</a></li>
      <li class="nav-item"><a class="nav-link" href="#">Features</a></li>
      <li class="nav-item"><a class="nav-link" href="#">Pricing</a></li>
    </ul>
  </div>
</nav>
<script src="./jquery-3.3.1.min.js"></script>
<script src="./bootstrap.bundle.min.js"></script>

カルーセル

カルーセル

<div id="carouselExampleCaptions" class="carousel slide"  data-ride="carousel">
  <ol class="carousel-indicators">
    <li data-target="#carouselExampleCaptions" data-slide-to="0" class="active"></li>
    <li data-target="#carouselExampleCaptions" data-slide-to="1"></li>
  </ol>
  <div class="carousel-inner">
    <div class="carousel-item active">
      <img src="img1.jpg" class="d-block w-100">
      <div class="carousel-caption d-none d-md-block"><h5>img1</h5></div>
    </div>
    <div class="carousel-item">
      <img src="img2.jpg" class="d-block w-100">
      <div class="carousel-caption d-none d-md-block"><h5>img2</h5></div>
    </div>
  </div>
  <a class="carousel-control-prev" href="#carouselExampleCaptions" data-slide="prev">
    <span class="carousel-control-prev-icon"></span>
  </a>
  <a class="carousel-control-next" href="#carouselExampleCaptions" data-slide="next">
    <span class="carousel-control-next-icon"></span>
  </a>
</div>

コンテンツエリア

3つの特徴

  • .containerは幅が1140pxになる。
  • .rowは必ず.container内で使用する。
    .rowは左右にネガティブマージン(マイナスのマージン)がついているが、これは.containerの左右のpaddingを消すためのものである。
    よって、.rowは.container内で使わないと左右にはみ出してしまうので注意。
  • 画像に.img-fluidを指定すると、横幅いっぱいにして高さを幅に合わせてくれる。
<div class="container bg-white py-5 my-5">
  <!--3つの特徴-->
  <h2 class="text-center py-3">BootStrapの特徴</h2>
  <div class="row">
    <div class="col-md-4 col-12">
      <img class="img-fluid" src="img3.jpg" alt="">
    </div>
    <div class="col-md-4 col-12">
      <img class="img-fluid" src="img3.jpg" alt="">
    </div>
    <div class="col-md-4 col-12">
      <img class="img-fluid" src="img3.jpg" alt="">
    </div>
  </div>
  <!-- 省略(お客様の声〜お問い合わせフォームが入る) -->
</div>

お客様の声

  • ・.rowと.d-flexの違いはネガティブマージンの有無である。
  • .col-md-6, .col-12とすることでPCでは2カラム、SPでは1カラムとなる。
  • .flex-wrap, .flex-wrap-reverseで折り返す順番を指定する。
<!--お客様の声右に写真-->
<h2 class="text-center mt-5 py-3">お客様の声</h2>
<div class="d-flex flex-wrap-reverse justify-content-center">
  <div class="col-md-6 col-12 p-0 align-self-center">
    <div class="p-4 h3">
      ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
    </div>
  </div>
  <div class="col-md-6 col-12 p-0">
    <img class="img-fluid" src="img4.jpg" alt="">
  </div>
</div>
<!--お客様の左に写真-->
<div class="d-flex flex-wrap justify-content-center">
  <div class="col-md-6 col-12 p-0">
    <img class="img-fluid" src="img4.jpg" alt="">
  </div>
  <div class="col-md-6 col-12 p-0 align-self-center">
    <div class="p-4 h3">
      ダミーテキストダミーテキストダミーテキストダミーテキストダミーテキスト
    </div>
  </div>
</div>

タブ

  • ・.nav-itemに.col-6, .p-0を指定することで横いっぱいに表示している。
  • コンテンツ表示部分は、.col-md-8, .col-12を指定してPCでは75%表示にしている。
<h2 class="text-center py-3 mt-5">タブ</h2>
<ul class="nav nav-tabs">
  <li class="nav-item col-6 p-0"><a class="nav-link active text-center" data-toggle="tab" href="#home">グリッドシステム</a></li>
  <li class="nav-item col-6 p-0"><a class="nav-link text-center" data-toggle="tab" href="#profile">OOCSS</a></li>
</ul>
<div class="tab-content">
  <div class="tab-pane fade show active" id="home">
    <div class="col-md-8 col-12 my-5 mx-auto">
      タブ1本文です。タブ1本文です。タブ1本文です。タブ1本文です。タブ1本文です。<br>
      タブ1本文です。タブ1本文です。タブ1本文です。タブ1本文です。タブ1本文です。<br>
    </div>
  </div>
  <div class="tab-pane fade" id="profile">
    <div class="col-md-8 col-12 my-5 mx-auto">
      タブ2本文です。タブ2本文です。タブ2本文です。タブ2本文です。タブ2本文です。<br>
      タブ2本文です。タブ2本文です。タブ2本文です。タブ2本文です。タブ2本文です。<br>
    </div>
  </div>
</div>

Youtube埋め込み

  • youtube埋め込み用iframeに.embed-responsive-itemを指定する。
  • それを.embed-responsive, .embed-responsive-16by9のdivで囲む。
<h2 class="text-center py-3 mt-5">YouTube</h2>
<div class="embed-responsive embed-responsive-16by9">
  <iframe class="embed-responsive-item" src="https://www.youtube.com/embed/xxxxx" allowfullscreen></iframe>
</div>

コメント