LP作成課題【図解たっぷりBootstrap入門】
.howto{
position: relative;
margin: 2.5em .2em;
background-color: #ffffe9;
}
.howto h4{
position: absolute;
left: 0;
top: -.3em;
text-align: left;
}
.howto h4 span{
padding: 0 .5em;
background: #fb7;
color: #FFF;
}
.howto_inner{
padding: 1.5em .5em .5em;
word-break: break-all;
}
.howto ol{
margin-top: 1em;
margin-left: 1em;
padding-left: 10px;
font-size: 1.05em;
line-height: 1.5em;
}
.howto li{
margin: 0 0 1em .5em;
line-height: 1.55;
word-break: break-word;
}
Bootstrapを使って、LP(ランディングページ)を制作していきましょう。
「bootstrap-works」フォルダの中に新しくlp.htmlというファイルを作り、そこにコードを記述してLPを作成していってください。
使用する画像は「kadai.zip」内にあります。
完成見本はこちらです。

◆LP制作課題①
ヘッダーからヒーローエリアまでを作成します。
1.ナビゲーションを作ろう
図のようなナビゲーションバーを作成します。

コーディング順序
-
Navber-Bootstrapからナビバーのテンプレートをコピー(Color schemesは *navbar-dark* と *bg-dark* を選択)してhtmlファイルに張り付ける。
- .brandには「LP」とテキストを入力
- メニューのリンクテキストは「HOME」「サービス概要」「サービス一覧」「お問い合わせ」の4つに変更。
- サービス一覧はdropdownに設定し、サービス1・サービス2を入れ子に。
- 入力フォーム内に「メールアドレス」の文字を表示させる。
- 右端のボタン文字を「会員登録」に変更する。
2.ヒーロー画像をカルーセルにしよう
次にヒーロー画像をカルーセルで表示させます。
キャプション内テキストは以下のように設定してください。
<h1>SAMPLE TEXT1</h1>
<p>SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT SAMPLE TEXT</p>

コーディング順序
-
Carousel-Bootstrapから*With indicators* のテンプレートをコピー&ペースト。
- 画像はフォルダに入っているhero1~3の3枚を使用。
- 3枚ともにキャプションテキストを入力する。
- デフォルトのキャプション文字色だと見えにくいので、オリジナルのcssクラス「carousel-caption」を追加し、cssで文字色を#333に指定します。
◆LP制作課題②
LP制作の続きを行なっていきます。
①で作成したカルーセルの下に、オレンジ色の点線で囲ったテキスト部分を作っていきます。
コーディング順序
- テキスト部分全体を「container」クラスを適応したdivで囲う。
- 「container」クラスの後に、オリジナルクラス「desc」を追加。
- 「desc」に対してcssで「text-align: center; margin-top: 80px;」と設定。
- テキストはそれぞれh2とPタグで囲う(文字はSAMPLE TEXTなどで)。
- pタグ内の一部分をmark と strong を一回ずつ使って強調表示する。
ボタンは次回作成するので今回はテキスト部分が出来ていればOKです。
◆LP制作課題③
1.ボタンを作ろう
前回作成したテキスト部分の下にボタンを作ります。
ヒーローエリアのカルーセルの部分にもボタンを加えます。クリックするとページに移動できるイメージですね。
キャプション部分も読みやすいように変更してみましょう。
コーディング順序
- カルーセルエリアのh1タグに「display-3」クラスを追加。
- その下のpタグに「lead」クラスを追加。
- pタグの下に「button」タグでbtn-lgのボタンを設置(色は完成図を参照)。
- テキスト可読性のため、imgタグにオリジナルクラス「opacity」を追加。
- 追加した「opacity」クラスにcssで「opacity:0.7;」と設定する。
完成したカルーセル部分がこちらです。
2.ナビゲーションにボタンを追加
ヘッダーに入れているナビゲーションバーにボタンを追加します。
行うことはとてもシンプル。
Bpptstrapサイトからコピーしてきたナビゲーションテンプレートの中の<form>タグ内、メールアドレスと会員登録の間に<button>タグを入れるだけです。
3.カードエリアを追加する
テキスト部分の下に3枚のカードを並べたエリアを作ります。
そして、カード内のテキストも少しカスタマイズしてみましょう。
コーディング順序
- 課題②で作ったテキストの下にdivを作成し、クラスに「container」を指定。
-
Cards-Bootstrapから「Card decks」のテンプレートをコピーし、作成した「container」内に配置。
- .card-deckを囲うdiv「container」の後ろに「card-area」クラスを追加。
- 「card-area」クラスに「margin-top:80px;」をcssで指定する。
- カード内タイトルとして用意されているh5をh4に変更。
- カード内の一番下にあるpタグを削除。
- 削除した部分にボタンを設置(サイズはbtn-sm、色は完成図を参照)。
テンプレートをカスタマイズしていく流れが掴めたでしょうか。
今回のカスタマイズは、ほんの少しでしたが、テンプレートの構造や意味を理解してカスタマイズを重ねていけばオリジナリティがあるお洒落なサイトを作ることが出来ます。
◆LP制作課題④
前回までのLP課題で作った部分を【10. Bootstrapのユーティリティを理解する】で登場した、Bootstrapのcssクラスを使用したものに変更してみましょう。
コーディング順序
- テキスト部分を囲っていたdivの「desc」クラスを「mt-5」に置き換える。
- 「desc」について設定したcss部分を削除する。
- テキスト部分hタグに「text-center」クラスを追加。
- テキスト部分pタグに「text-left」クラスを追加。
- 3つのボタンを囲うdivから「container」を削除。
- 上記divに「mt4 d-flex justify-content-center」クラスを追加。
- カードを囲っているdivから「card-area」クラスを削除。
- 上記divに「mx-5」クラスを追加する。
- 「card-area」について設定したcss部分を削除する。
オリジナルでcssを設定していたクラスを取り外し、
Bootstrapのクラスに気に変えても下図のようにレイアウトが保たれていればOKです。

CSSファイルを作って一から細かく指定して作成するよりも、Bootstrapで用意されたクラスを使う方が素早く簡単に行えることがわかりますね。
◆LP制作課題⑤
テキストエリア、見出しとテキストの間にアイコンを3つ設置します。
3つ横並びに配置されていればアイコンの種類は何でも構いません。
コーディング順序
- hタグの下にアイコンを3つ配置する。
- アイコン3つをdivで囲う。
- 上記divに「d-flex justify-content-around」クラスを追加。
- 上記divに更に「my-5」を追加し、余白を調節する。
- アイコン部分に「fa-4x」クラスを追加しサイズを大きくする。
◆LP制作課題⑥
LPページにアラートを追加してみましょう。
ヘッダーナビゲーションの下にアラートが表示されるように作っていきます。
アラートリンクも使います。
コーディング順序
-
Alerts-Bootstrap内、「Dismissing」のコードをコピーしてきて、navとcarouselの間に貼り付ける。
- 完成画像と同じ色になるよう、配色のクラスを変更。
- アラート全体を囲うdivに「mb-0」クラスを追加してカルーセルとくっつける。
- 「ログアウトしました」という文字を入力してstrongで囲う。
- 上記タグの後に「会員サービスを利用する場合はログインしてください 」と入力。
- 上で入力した文字の「ログイン」部分を「alert-link」クラス付きのaタグで囲う。
- strongタグに「mr-5」クラスを追加し、間をあける。
◆LP制作課題⑦
カード部分の下に2カラム部分を作成し、その中にモーダルボタンを設置していきます。
まず、2カラム部分を作りましょう。
グリッドシステムを使用して、画像とテキストの2カラムを作ります。

コーディング順序
- 「container」と「row」を作る。
- その中に「col-md-4」と「col-md-8」を作成する。
- 「col-md-4」の中に画像を挿入し、「img-fluid」クラスを適応。
- 上記imgタグにオリジナルのcss「img-cover」を加える
- img-coverクラスに対してcssファイルで下記のように指定する。
.img-cover{
height: 300px;
width: 100%;
object-fit: cover;
}
/*
ここでは画像がカラムからはみ出ないように設定しています。
縦横のサイズを指定して「object-fit: cover;」と指定することで、
指定サイズ範囲内に画像が収まるよう調整されます。
*/
続いて、予約フォームをモーダルで作るという想定でモーダルを設置します。
テンプレートの状態から、変更を加えて以下のようなモーダルになればOKです。

コーディング順序
-
Modal-Bootstrapから「Live demo」のコードをコピーし、作成した2カラム部分の下に張り付ける。
- モーダルのタイトルを「タイトル」に変更。
- モーダルのbodyには「さんぷるてきすと」を何度か繰り返して入力。
- モーダルを閉じるボタンの文字を「閉じる」に変更。
- もう一つのボタンは「予約」に文字を変更。
- 予約ボタンのカラーを画像と同じになるように設定。
◆LP制作課題⑧
今までの復習として、課題⑦で作った2カラムの下に、画像を使った3カラムと「container-fluid」を使ったシングルカラムを作成してみましょう。こちらもグリッドシステムを使用し、画像がはみ出ない為に作ったオリジナルクラス「img-fluid」と「img-cover」のcssを適用させてきます。
3カラム部分を作ろう
図のような画像のみの3カラムを設置します。

コーディング順序
- 「container」と「row」を作る。
- その中に「col-md-4」を3つ作成する。
- それぞれ画像を入れ、imgタグに「img-fluid」と「img-cover」クラスを追加。
- 「container」に「mb-5」クラスを追加する。
シングルカラム部分を作ろう
LPですのでシングルカラム部分は「予約」という成果を得る為、もう1度予約フォームを入れておきます。また、文字やボタンを画像の上にのせます。
見やすいように画像を透過させることも重要です。
コーディング順序
- divを作り「container-fluid px-0」クラスを設定する。
- その中に「Sample Text」と入力し、「display-4」を指定したspanクラスで囲う。
- 上記タグの下にpタグを書き、中に「sample text」と何度か書く。
- 上記タグの下にbootstrapのボタンを設置し、pタグで囲う(※1)。
- ボタンの文字を「予約する」に変更し、カラーを画像と合わせる。
- 「container-fluid」divの中にdivを作り、span,p ,buttonを囲う。
- 上記divに「d-flex flex-column justify-content-center」クラスを追加。
ここまで出来たら、更にオリジナルクラスを加えていきます。


ここまでで、余白の為のクラスなど、Bootstrapのユーティリティの項目のクラスが頻繁に出てくることに気付いたでしょうか。これらは、頻繁に使用するかと思いますので、しっかり復習しておきましょう。
※1 ボタンタグをpタグで囲う

ボタンタグを<p>タグで囲うのは、親要素で使用している「flex-column」の影響によってボタンが引き伸ばされるのを防ぐためです。ボタンタグだけですと、下図のように「content」クラスの幅までボタンが伸びてしまいます。

◆LP制作課題⑨
最後に、フッターの作成と微調整を行っていきます。
フッターを作ろう
下図のようなフッターを作成します。
こちらもアイコン3つはお好きなもので構いません。

フッター部分の追加順序
- 「footer class="footer"」を使用してフッターエリアを作る。
- footer内にアイコンを3つ設置する。
- Font awsomeの場合は「fa-4x」クラスを追加しサイズを変更。
- アイコンの下にulを追加し、中にliタグを4つ作る。
- liタグ内にそれぞれリンクを作る(内容はnavbar-navと同じ)
- ulタグの下にもう一つulタグを作り、サービス1、サービス2を入れたliタグで囲う
- 上記ulタグの下にpタグを入れ「© 2018 Bootstrap test」と記述。
ここまで出来たら、ブラウザで表示を確認しましょう。

入力内容は表示はされていますが、見にくいですね。
Bootstrapで用意されているクラス+オリジナルcss追加で調整していきましょう。
リストは横並びにならないだけではなく、自動でpaddingが入ってしまうなど、気づきづらい部分も多いかと思います。細かくコードと見え方を確認することが重要です。
フッター全体の調整
- フッタータグに「py-5」クラスを追加。
- 3つ並べたアイコンを囲うdivを作り、「mb-4」クラスを追加。
- 3つ並べたアイコンのうち真ん中に「mx-5」クラスを追加。
- 1つ目のulタグに「mt-3」「p-0」クラスを追加・
- 1つ目のul>liタグ、2つめのaタグに「mx-3」、4つめのaタグに「ml-3」クラスを追加。
- 2つ目のulタグに「mb-5」「p-0」クラスを追加。
- 2つ目のulタグ内にあるリストタグ2つ目に「ml-3」クラスを追加。
- 一番下のpタグに「mb-0」クラスを追加。
- 2つめのulタグにオリジナルの「sub-list」クラスを追加し、下記cssを設定。
footer li{
display: inline-block;
/* リンクを横並びにします。
/ Bootstrapにも.d-inlineクラスがありますが、liタグ全てに付けるのは大変なのでcssで設定しています。
*/
}
footer li>a{
color: #FFF;
/* リンク色の設定。
/ Bootstrapにも.text-whiteクラスはありますが、こちらもaタグ全てにクラス追加が大変なのでcssで一括指定しています。
*/
}
ul.sub-list{
font-size: 0.8rem; /* 文字サイズを少し小さくします。 */
}
ここまでで一通り出来ました。
【完成したフッター部分のコード】

ブラウザで冒頭の完成図通りに表示されていればOKです。
スマホ画面向けの微調整
ここまででLPは一通り完成しました。
最後にブラウザの検証ツール(要素を調査など)を使って、作成したLPのスマホ表示の見え方を確認してみてください。
たとえば、3カラムの部分の画像。
ここでは、グリッドシステムを使っています。スマホ表示になると、1画像12カラムとなります。そうすると、画像同士がぴったりとくっついてしまっていると思います。
このような部分を修正していきます。
また、フッター上のシングルカラム部分では、テキストがフッターの方まではみ出してしまっているかと思います。こちらも修正していきましょう。

スマホ表示用調節
- フッター上の「container-fluid」内にあるpタグに「d-none d-md-block」クラスを追加。
- 3カラム部分の2つ目の画像に「my-5 my-md-0」クラスを追加。
- フッターのulタグ2つに「pl-0」クラスを追加。
これで、シンプルですが簡単なLPが出来ました。Bootstrapを使わずに作るよりも、とても簡単に出来る事が分かっていただけたかと思います。とても早く制作する事が出来ますよね。
この例では、基本的な部分のみ扱いましたが、テンプレートのコードやBootstrap内でのルールを知ることが、カスタマイズを行う為に必要であることも分かったかと思います。Bootstrapを使いこなして、オリジナリティのある美しいサイトを制作していきましょう。