bootstrap(rails)

bootstrap

インストール

jqueryも必要らしい。

gem 'bootstrap', '~> 4.1.1'
gem 'jquery-rails'
application.scss

@import "bootstrap";
application.js

list

list-groupは標準で
display: -webkit-box;
flex-direction: column;
が設定されている。

気づかずになんでdysplay: flex;使って、なんで横並びにならないんだと悩んでしまった。

.list-group{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
.list-group-item{
  width: 50%;
}

色の装飾

navbarの色指定はココ

%nav.navbar.navbar-expand-lg.navbar-dark.bg-secondary
  • navbar-dark 白色文字(暗い背景用の文字色)
  • navbar-light 黒色文字(白い背景用の文字色)
  • bg-primary
  • bg-secondary
  • bg-success
  • bg-danger
  • bg-warning
  • bg-info
  • bg-light
  • bg-dark

サイズ指定

グリット方式になっているのでクラス指定してあげればサイズが可変できる。

col-1〜12のクラスを付与すると12等分で指定できる。

.col-8
この指定のdivは8/12サイズのdivが生成される。

flash

alert機能が実装されている。
primary〜infoまで様々なカラーバリエーションあり。
これをflashメッセージとして組み合わせて使う。

まずアプリケーションコントローラーにflash_typeを追加する。

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?
  add_flash_types :success, :info, :warning, :danger
end

お目当のアクションでflashを定義する。
以下の例だとsuccess: ‘saved’

  def update
    @user = current_user
    if @user.update(user_params)
      redirect_to user_path(current_user), success: 'saved'
    else
      render :edit
    end
  end

viewでflashメッセージを呼び出す。
クラスがalertとalert-typeの2つ必要だが、式展開のさせ方がわからない。
強引だが、2箇所に分けて展開させた。

  - flash.each do |type, msg|
    .alert{role: "alert", class: "alert-#{type}"}= msg

コメント