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>