クラスとid
ともにラベルで、CSSのスタイルを指定するときに役立つ。
クラスは一つのページ内で何度も使えるのに対し、idはページ内では一度しか使えない一意のものでなくてはならない。
クラスにCSSをあてるには.class名idは#id名
link_to、image_tag
link_toはrailsのヘルパー。
第1引数はテキスト、第2引数はURL
image_tagもrailsのヘルパー
第1引数に画像ファイルのパス、と任意のオプションを取る。(alt属性は画像が表示されないときに表示されるテキスト)
Bootstrap
Boostrapとは、HTML/CSS/JSで構成されるWEBフレームワーク。
bootstrap-sassというgemを追加すると、このgemがSassをLESS CSS言語に変換する。
パーシャル
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= csrf_meta_tags %>
<%= stylesheet_link_tag 'application', media: 'all',
'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application',
'data-turbolinks-track': 'reload' %>
<%= render 'layouts/shim' %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
</div>
</body>
</html>
render 'layouts/shim'
の部分は shimファイルを表示する。
パーシャルのファイルは、ファイル名とすると、railsが自動的に読み込んでくれる。
アセットパイプライン
アセットパイプラインとは、JavaScriptやCSSのアセットを最小化 (minify: スペースや改行を詰めるなど) または圧縮して連結するためのフレームワークです。アセットパイプラインでは、CoffeeScriptやSass、ERBなど他の言語で記述されたアセットを作成する機能を追加することもできます。 アセットパイプラインはアプリケーションのアセットを自動的に他のgemのアセットと結合できます。たとえば、jquery-railsにはRailsでAJAXを使えるようにするjquery.jsが含まれています。
アセットパイプラインはsprockets-rails gemによって実装され、デフォルトで有効になっています。アプリケーションの新規作成中にアセットパイプラインを無効にするには、--skip-sprocketsオプションを渡します。
つまり、アセットパイプライン処理を早くするために、同じファイル形式のものを連結したり、アセットの最小化をを行ったりする。
Sass
SassはCSSを拡張した言語。CSSをより効率的かつ美しく書くことを可能にする。
SCSSはCSSに新しい機能を追加しただけで、全く新しい構文を定義したようなものではないということです15。このため、有効なCSSファイルは、すべてSCSSファイルとしても扱うことができ、既存の記法ルールを使っているプロジェクトにとっても互換性のある便利なフォーマットになっています。
要素のネスト
共通のパターンは要素をネスト(入れ子)する事ができる。
.center {
text-align: center;
}
.center h1 {
margin-bottom: 10px;
}
は次のようにできる
.center {
text-align: center;
h1 {
margin-bottom: 10px;
}
}
別のパターンとして
#logo {
float: left;
margin-right: 10px;
font-size: 1.7em;
color: #fff;
text-transform: uppercase;
letter-spacing: -1px;
padding-top: 9px;
font-weight: bold;
}
#logo:hover {
color: #fff;
text-decoration: none;
}
は次のようにできる
#logo {
float: left;
margin-right: 10px;
font-size: 1.7em;
color: #fff;
text-transform: uppercase;
letter-spacing: -1px;
padding-top: 9px;
font-weight: bold;
&:hover {
color: #fff;
text-decoration: none;
}
}
&が#logoに変換されている。
変数の定義
何度も使うカラーなどは、色の名前で変数として定義しておくと便利
$変数名: #カラー
ルートURL
root_pathはルートURL以下の文字列を返し、
root_urlは完全なURLを返す
使い分けとしては、基本的には_pathを使い、リダイレクトの場合のみ、_urlを使う(リダイレクト時には、完全なURLが要求されるため)
get '/help', to: 'static_pages#help'
とルーティングを定義することで、名前付きルートが使えるようになる。