Bootstrapを使ってみよう!

プログラミング

Boostrapの導入

以下のコマンドを実行します。

$ yarn add jquery bootstrap@4.6.2 popper.js

config/webpack/environment.jsを編集。

const webpack = require('webpack')
environment.plugins.prepend(
  'Provide',
  new webpack.ProvidePlugin({
    $: 'jquery/src/jquery',
    jQuery: 'jquery/src/jquery',
    Popper: 'popper.js'
  })@use '~bootstrap/scss/bootstrap';
)

app/javascript/stylesheetsフォルダを用意して,application.scssを作成します。

@use '~bootstrap/scss/bootstrap';

またapp/javascript/packs/application.jsに以下を追加します。

import "jquery";
import "popper.js";
import "bootstrap";
import "../stylesheets/application"; 

app/views/layouts/application.html.erbも変更します。

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
↓
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

ヘッダーとフッターの作成

長くなるのでheadとbodyの2つに分けてコードを載せます。

<head>
# 追加コード
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<head>
<body>
 <header class="bg-light border-bottom">
  <nav class="navbar navbar-expand-lg">
   <div>
    <a></a>
    <button>
     <span></span>
    </button>
    <div>
     <ul>
     <% if user_signed_in? %>
     <li>
      <%= link_to "マイページ" %>
     </li>
     <li>
      <%= link_to "投稿一覧" %>
     </li>
     <li>
      <%= link_to "ユーザー一覧" %>
     </li>
     <li>
      <%= link_to "ログアウト" %>
     </li>
     <% elsif admin_signed_in? %>
     <li>
      <%= link_to "投稿一覧" %>
     </li>
     <li>
      <%= link_to "ユーザー一覧" %>
     </li>
     <li>
      <%= link_to "ログアウト" %>
     </li>
     <% else %>
     <li>
      <%= link_to "Top" %>
     </li>
     <li>
      <%= link_to "About" %>
     </li>
     <li>
      <%= link_to "新規登録" %>
     </li>
     <li>
      <%= link_to "ログイン" %>
     </li>
     <% end %>
     </ul>
    </div>
   </div>
  </nav>
 </header>
 <main>
 <%= yield %>
 </main>
 <footer>
  <div>
   <div>
    <p>footerです</p>
   </div>
  </div>
 </footer>
<body>

解説

bg-light : 背景を薄い灰色にする
border-bottom : 領域の下に線を引く
navbar : ナビゲーションの領域を作成する
navbar-expand-(ポイント) : 画面幅に応じてメニューを変化させる. その場所をポイントとして指定する。
navbar-(色) : ナビゲーションの色指定
p : paddingの指定
navbar-toggler : ナビゲーションのメニューの枠を作成
navbar-nav : ナビゲーション用の調整
ml-auto : 左側に余白を自動作成→今回の場合は右寄せになる

タイトルとURLをコピーしました