改13.Bootstrapのモーダルを理解して実装する | SkillhubAI(スキルハブエーアイ)

改13.Bootstrapのモーダルを理解して実装する

吉田先生(通常)
吉田先生

ログインした時に表示される「ログインに成功しました」というアラート機能や、ポップアップが表示されるモーダル機能を取り入れてページのクオリティをアップさせてみましょう。

 

 

モーダル

モーダルとは、閉じるまで他の操作が出来なくなる小窓の様なものです。他の操作とは、モーダル外のリンクのクリックなどです。 モーダルは、ポップアップとも呼ばれています。広告などでも使われていますね。

file

 

こちらもBootstrapで用意されているテンプレートを使用すると簡単に実装出来ます。  今回は、Bootstrapサイト>コンポーネント>モーダルに掲載されている「Live demo」というテンプレートを使います。

file

 

では、モーダルの構造を見ていきます。 こちらは、プラグイン(拡張機能を使う為のプログラム)を使用しています。この場合の拡張機能とは、モーダルの事です。ですので、先ほどのアラートよりも複雑な構造になっています。

カスタマイズ含め、モーダルを使う為にはどの部分を編集すればよいのか確認しましょう。

 

file

Bootstrpでのモーダルは、ボタンがクリックされるとモーダルが表示される仕組みになっています。ですので、最初にボタンタグが出てきます。 ボタンタグ内にはボタンに表示させる文言を書きます。

 

ボタンタグの次の部分は、モーダルを作る為に必要なものですので、変更を加えることは不要です。 詳しい構造は以下イメージをご確認ください。

file

 

次は、編集を行っていく部分です。 まずモーダルヘッダーのdiv内にh5タグがあります。このタグにはモーダルタイトルというクラスが与えられています。これは、モーダル内の見出しを作っている部分です。

file

 

次に、モーダルボディクラスが出てきます。 これは、モーダル内の本文にあたる部分です。

最後に、モーダルフッターというクラスが出てきます。 これは、モーダル内下部の部分です。この中には、ボタンが2つ設置されています。一つは、モーダルを閉じる為のボタンです。もう一つは、モーダルの内容によりますが、送信フォームの様なものであれば保存ボタンとして使用するという感じです。

file

 

 

・モーダルのカスタマイズ

モーダルのカスタマイズについて学んでいきましょう。 先ほどのモーダルは、Bootstrapサイトのデモを試すと分かるかと思いますが、モーダルが画面上部に表示されるようになっていました。

これを、画面中央に表示させたい場合は以下のようにカスタマイズします。1つCSSクラスを追加するだけでOKです。

file

 

 

◆LP制作課題⑦

では、LPの制作に入っていきましょう。 カード部分の下に2カラム部分を作成し、その中にモーダルボタンを設置していきます。

まず、2カラム部分を作りましょう。今回は、グリッドシステムを使用して、画像とテキストの2カラムを作ります。

file

コーディング順序

  1. 「container」と「row」を作る。
  2. その中に「col-md-4」と「col-md-8」を作成する。
  3. 「col-md-4」の中に画像を挿入し、「img-fulied」クラスを適応。
  4. 上記imgタグにオリジナルのcss「img-cover」を加える
  5. img-coverクラスに対してcssファイルで下記のように指定する。
    .img-cover{
      height: 300px;
      width: 100%;
      object-fit: cover;
    }
        /* 
        ここでは画像がカラムからはみ出ないように設定しています。
        縦横のサイズを指定して「object-fit: cover;」と指定することで、
        指定サイズ範囲内に画像が収まるよう調整されます。
        */

 

 

続いて、予約フォームをモーダルで作るという想定でモーダルを設置します。 テンプレートの状態から、変更を加えて以下のようなモーダルになればOKです。 file

コーディング順序

  1. Modal-Bootstrapから「Live demo」のコードをコピーし、作成した2カラム部分の下に張り付ける。
  2. モーダルのタイトルを「タイトル」に変更。
  3. モーダルのbodyには「さんぷるてきすと」を何度か繰り返して入力。
  4. モーダルを閉じるボタンの文字を「閉じる」に変更。
  5. もう一つのボタンは「予約」に文字を変更。
  6. 予約ボタンのカラーを画像と同じになるように設定。

 

◆LP制作課題⑧

今までの復習として、課題⑦で作った2カラムの下に、画像を使った3カラムと「container-fulied」を使ったシングルカラムを作成してみましょう。こちらもグリッドシステムを使用し、画像がはみ出ない為に作ったオリジナルクラス「img-fulied」と「img-cover」のcssを適用させてきます。

 

3カラム部分を作ろう

図のような画像のみの3カラムを設置します。 file

コーディング順序

  1. 「container」と「row」を作る。
  2. その中に「col-md-4」を3つ作成する。
  3. それぞれ画像を入れ、imgタグに「img-fulied」と「img-cover」クラスを追加。
  4. 「container」に「mb-5」クラスを追加する。

 

シングルカラム部分を作ろう

LPですのでシングルカラム部分は「予約」という成果を得る為、もう1度予約フォームを入れておきます。また、文字やボタンを画像の上にのせます。 見やすいように画像を透過させることも重要です。 file

コーディング順序

  1. divを作り「container-fulied」クラスを設定する。
  2. その中に「Sample Text」と入力し、「display-4」を指定したspanクラスで囲う。
  3. 上記タグの下にpタグを書き、中に「sample text」と何度か書く。
  4. 上記タグの下にbuttonを設置。
  5. ボタンの文字を「予約する」に変更し、カラーを画像と合わせる。
  6. 「container-fulied」divの中にdivを作り、span,p ,buttonを囲う。
  7. 上記divに「d-flex flex-column justify-content-center」クラスを追加。

 

ここまで出来たら、更にオリジナルクラスを加えていきます。 file

 

file

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

 

 

◆LP制作課題⑨

最後に、フッターの作成と微調整を行っていきます。

フッターを作ろう

下図のようなフッターを作成します。 こちらもアイコン3つはお好きなもので構いません。 file

フッター部分の追加順序

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

 

ここまで出来たら、ブラウザで表示を確認しましょう。 file

入力内容は表示はされていますが、見にくいですね。 Bootstrapで用意されているクラス+オリジナルcss追加で調整していきましょう。

リストは横並びにならないだけではなく、自動でpaddingが入ってしまうなど、気づきづらい部分も多いかと思います。細かくコードと見え方を確認することが重要です。

フッター全体の調整

  1. フッタータグに「py-5」クラスを追加・
  2. 3つ並べたアイコンを囲うdivど作り、「mb-4」クラスを追加。
  3. 3つ並べたアイコンのうち真ん中に「mx-5」クラスを追加。
  4. 1つ目のulタグに「mt-3」「p-0」クラスを追加・
  5. 1つ目のul>liタグ、2つめのaタグに「mx-3」、4つめのaタグに「ml-3」クラスを追加。
  6. 2つ目のulタグに「mb-5」「p-0」クラスを追加。
  7. 2つ目のulタグ内にあるリストタグ2つ目に「ml-3」クラスを追加。
  8. 一番下のpタグに「mb-0」クラスを追加。
  9. 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;  /* 文字サイズを少し小さくします。 */
    }

ここまでで一通りは完成です。

 

完成したフッター部分のコード file

ブラウザで冒頭の完成図通りに表示されていればOKです。

 

 

スマホ画面向けの微調整

ここまででLPは一通り完成しました。 最後にブラウザの検証ツール(要素を調査など)を使って、作成したLPのスマホ表示の見え方を確認してみてください。

 

たとえば、3カラムの部分の画像。ここでは、グリッドシステムを使っています。スマホ表示になると、1画像12カラムとなります。そうすると、画像同士がぴったりとくっついてしまっていると思います。 このような部分を修正していきます。 file

 

また、フッター上のシングルカラム部分では、テキストがフッターの方まではみ出してしまっているかと思います。こちらも修正していきましょう。 file

 

スマホ表示用調節

  1. フッター上の「container-fulied」内にあるpタグに「d-none d-md-block」クラスを追加。
  2. 3カラム部分の2つ目の画像に「my-5 my-md-0」クラスを追加。
  3. フッターのulタグ2つに「pl-0」クラスを追加。

これで、シンプルですが簡単なLPが出来ました。Bootstrapを使わずに作るよりも、とても簡単に出来る事が分かっていただけたかと思います。とても早く制作する事が出来ますよね。

この例では、基本的な部分のみ扱いましたが、テンプレートのコードやBootstrap内でのルールを知ることが、カスタマイズを行う為に必要であることも分かったかと思います。Bootstrapを使いこなして、オリジナリティのある美しいサイトを制作していきましょう。

 

 

◎まとめ

・アラートは、警告や処理の結果をユーザに通知する為のもの

・モーダルは、閉じなければ他の操作は行えない