吉田先生
今までに学習したBootstrap5の使い方を復習しながら、1つのランディングページ(LP)を作ってみましょう。
完成後に『Bootstrap5のレイアウト方法をマスターしよう』で作ったページと見比べてみると、コーディングのレベルアップが感じられますよ。
このレッスンでは、Bootstrap5を使用して下図のようなLP(ランディングページ)を制作します。
なお、htmlやcssファイル名はお好きに設定して頂いも構いません。
ページ最上部に、下図のようなヘッダーナビゲーションを作成します。
※メニューとフォーム部分の間隔などは、表示する画面幅により異なります。
コーディング順序
ナビゲーションの下には、カルーセルを使って画像3枚をスライド表示します。
インジケーターとキャプション、両方つけます。
まずは、大まかに設定していきましょう。
コーディング順序
キャプションの可読性を上げるため、さらにBootstrapのクラスを追加します。
コーディング順序
使用したopacity-75クラスは、CSSのopacityプロパティ(不透明度)を設定できるユーティリティです。
ドキュメントではBackground(背景)のページで解説されています。
作成したカルーセルの下に、下図のようなテキスト部分を作ります。
ここは横に広がりすぎないよう、全体をBootstrapのcontainerクラスを指定した要素で囲います。
まず、見出しと文章が書かれている部分を作ります。
コーディング順序
追加したpタグの下で、アイコンを3つ並べます。
表示するアイコンは、Bootstrapアイコンからお好きなものを選んで使ってください。
コーディング順序
ナビゲーション、カルーセル内(キャプション下部 × 3 )にボタンを追加します。
カルーセル内のボタンは、btn-lgクラスを使って大きくします。
ボタン色のクラス名はButtonsで調べて下さい。
コーディング順序
【ナビゲーション】
【カルーセル内】
ヘッダーナビゲーションの下に、アラートを追加してみましょう。
アラートリンクも使います。
コーディング順序
テキスト部分の下に4枚のカードを並べたエリアを作ります。
まず、カードを4枚横に並べるレイアウトを作ります。
テンプレートコードはBootstrap5.3ドキュメントのCardページ、グリッドカードのものを使います。
URL:https://getbootstrap.jp/docs/5.3/components/card/
コーディング順序
上図のように、表示幅が広い時は4つ横並びにカードが配置されている状態にして下さい。
カードの中身を作っていきます。
カード1つを完成させてから、残り3つ分にコピー・アンド・ペーストしてもOKです。
コーディング順序
ここまでのコーディングで、各カード部分のコードは以下のようになります。
<div class="card">
<img src="images/card.jpg" class="card-img-top" alt="...">
<div class="card-body">
<h3 class="card-title h5">Card title</h3>
<p class="card-text">
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
</p>
<div class="text-end">
<a class="icon-link icon-link-hover align-items-baseline" href="#">
詳しくはこちら
<i class="bi bi-arrow-right"></i>
</a>
</div>
</div>
</div>
3枚並べたカード部分の下に2カラム部分を作成し、モーダルボタンを設置します。
まず、2カラム部分を作りましょう。
グリッドシステムを使用して、画像とテキストの2カラムを作ります。
コーディング順序
.img-cover{
height: 300px;
width: 100%;
object-fit: cover;
}
/*
これは画像がdiv.col-md-6 よりも小さい場合に、拡大して表示する設定です。
縦横のサイズを指定して「object-fit: cover;」と指定することで、
指定サイズ範囲内に画像が収まるよう調整されます。
*/
2つ目のdiv.col-md-6には、見出しと段落をいれます。
それぞれ、文字は適当に打ってしまって良いので、サクッと作りましょう。
<div class="col-md-6">
<h2>SAMPLE TEXT</h2>
<p>
SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT
</p>
<!-- ★ここにモーダルを設置します -->
</div>
rowとcolについて
ここではflexの子要素に対してcol-md-6クラスを指定しました。
上のカードエリアと同じ様に、子要素の方はcolクラスのみ、rowクラスが指定されている要素にrow-cols-md-2クラスを指定しても構いません。お好きな方法で設定してみて下さい。
予約フォームに進むための注意事項を表示するモーダルを設置します。
2カラム右側にボタンがあり、押下すると以下のようなモーダルが表示されるようにします。
コーディング順序
画像を3枚横に並べて表示させます。
imgタグには以下2つのクラスを追加し、どの幅でもピッタリと画像が表示されるようにしましょう。
コーディング順序
続いてシングルカラムエリアです。
LPですので、「予約」という成果を得られるように、大きめのボタンを中央に入れましょう。
また、全幅で背景画像を入れて、文字やボタンを画像の上にのせます。
コーディング順序
この時点では、まだ下図のようにテキストとボタンが表示されるだけです。
<div class="mt-5">
<div class="d-flex flex-column justify-content-center">
<h2 class="display-4">Sample Text</h2>
<p>
sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text
</p>
<div>
<button type="button" class="btn btn-success">予約する</button>
</div>
</div>
</div>
なお、ボタンを<div>タグで囲うのは、flexレイアウトの影響でボタンが引き伸ばされるのを防ぐためです。
ボタンタグだけですと、下図のように幅いっぱいにボタンが伸びてしまいます。
背景画像を表示させましょう。
ここは、オリジナルのCSSファイル(lp.css)を使って自分で書きます。
背景画像を表示させたい要素に、オリジナルのCSSクラスを作って指定します。
mt-5クラスを指定したdivタグに、section-singleというクラス指定を追加して下さい。
<div class="section-single mt-5">
CSSファイルで、背景画像を指定します。
画像のパスは各自、ご自身のフォルダ構成に合わせて変更して下さい。
.section-single{
background-image: url(images/single-bg.jpg);
}
これだけだと、シングルカラム部分が縦方向にとても狭いです。
CSSでmin-heightの指定を加えて「少なくとも、これだけの高さは確保せよ」と命令します。
合わせて、背景画像が切れたり、繰り返さないようbackground-size: cover;という記述も加えましょう。
文字の可読性を上げるためにちょっとした工夫をします。
<div class="d-flex flex-column...を囲う形で、divを追加してください。
新しく作ったdivには、maskというオリジナルクラスと、Bootstrapのcontainer-fluidクラスを指定して下さい。
<div class="section-single mt-5">
<div class="mask container-fluid">
<div class="d-flex flex-column justify-content-center">
<h2 class="display-4">Sample Text</h2>
<p>
sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text sample text
</p>
<div>
<button type="button" class="btn btn-success">予約する</button>
</div>
</div>
</div><!-- //END .mask -->
</div><!-- //END .section-single -->
オリジナルのCSSファイルで、maskクラスに対して以下のようなスタイル指定を書きます。
.mask{
background-color: rgba(255, 255, 255, 0.6)
}
このRGBAという書き方では、4つ目の数字が不透明度の指定になります。
コンテンツ背景が、下図のように少し白っぽい見え方になっていれば成功です!
左上に配置されているコンテンツ(h2やbutton)を、背景画像の中央に表示できるように調整していきます。
コーディング順序
下図のようなフッターを作成します。
こちらも使用するアイコン3つは、お好きなもので構いません。
コーディング順序
ここまで出来たら、ブラウザで表示を確認しましょう。
入力内容は表示はされていますが、まだ見にくいですね。
<footer class="bg-dark text-light py-5">
<div class="container">
<i class="bi bi-facebook display-4"></i>
<i class="bi bi-instagram display-4"></i>
<i class="bi bi-line display-4"></i>
<ul>
<li><a href="#">ホーム</a></li>
<li><a href="#">サービス概要</a></li>
<li><a href="#">サービス一覧</a></li>
<li><a href="#">お問い合わせ</a></li>
</ul>
<p class="text-center">
© 2023 Bootstrap test
</p>
</div>
</footer>
footer部分の表示を整えていきましょう。
表示を確認しながら、クラスをどんどん追加して調整していくイメージです。
調整ポイント
上図のように表示されていたら完成です。
footer の liタグやaタグについて
上記ではliタグやaタグに、何度も全く同じクラス指定を書きました。
毎回同じクラス指定を書くのが面倒くさい!という場合は、 footer li a { ... } やオリジナルクラスを作るなどしてCSSファイルの方でスタイル指定を記述しても構いません。どちらの方法も間違いではありませんので、お好きな方でコーディングして下さい。
ここまででLPは一通り完成しました。
ブラウザの検証ツールを使って、作成したページがスマホ幅でどう見えるか確認してみてください。
ちょっと調整が必要な箇所が、何点か見つかると思います。
分かりやすいところだと、フッターのメニュー(liタグ)部分。
下図のように文字が折り返して、ちょっと見にくいですね。
このような部分を修正していきます。
スマホ幅表示での調節
他にも気になるところがあれば、BoostrapのCSSクラスを使って調整してみてください。
ここまでで、簡単なLPが出来ました。
Bootstrapを使わずに作るよりも、とても簡単に出来る事が分かっていただけたかと思います。
本講座では基本的な部分を中心に扱いましたが、テンプレートのコードやBootstrap内でのルールを知ることが、カスタマイズを行う為に必要であることも分かったかと思います。
自分で「公式ドキュメントから必要なページを探す」「使う」というのも、Bootstrapに限らず、各種フレームワークやCMSを活用していくために必要なスキルです。慣れていれば探し方なども早くなりますから、時間がある時にドキュメントの方も確認してみてください。
Bootstrapを使いこなして、オリジナリティのある美しいサイトを制作していきましょう。
無料ビデオ講座のお知らせ
Skillhub [スキルハブ]では無料の動画講座を多数公開しています。他校だと数万円するような講座が無料で受講できます。