Bootstrapには基本のスタイルやボタン・フォームなどの基本的なスタイルが用意されています。今回は、これらの中からよく使うものや便利なものを紹介します。
ヘディング要素
違うレベルの見出しのデザインを適用する
Bootstrapでは、h1~h6要素(以下、ヘディング要素と呼ぶ)へのスタイル付けがされています。
特筆すべき点としては、h1~h6要素それぞれのデザイン用にh1、h2、…、h6のclassが生成されることです。これにより、例えば、文章構造的にh3要素を使用することろで、デザイン的にh5要素と同じにしたいという場合、h3要素のclassにh5を指定することで見た目の表示を変えることができます。
ヘディング要素にサブタイトル等をつける
ヘディング要素内にsmall要素、またはsmallというclassを指定した要素を入れることで、この要素は色が薄く一回り小さいサイズになります。サブタイトルのデザインとして重宝します。
テキスト
abbr要素のスタイル
略語を説明するためのabbr要素は、下線の点線がつき、この要素上でカーソルが変化します。initialismというclassをつけることで一回り小さくしスマートに表示することも可能です。
ボックスレベル要素
ボックス内のテキストの左右寄せ等を行う
display:blockとなっている特定の要素内でテキストを左右寄せ・中央揃え・両端揃えする際に用いるclassがあります(両端揃えについては日本語で正しく動作するブラウザは限られてます)。
text-left |
左寄せ |
text-center |
中央揃え |
text-right |
右寄せ |
text-justify |
両端揃え |
引用
引用のスタイル
一般的な引用blockquote要素には次のスタイルが適用されます。引用元の情報はfooter要素でラップするようにします。
さらに、blockquote要素にblockquote-reverseというclassをつけることにより、引用を右寄せにできます。
リスト
リストを横並びにする
通常リスト要素を横並びにするにはfloat: leftやdisplay: inline-blockを利用しますが、Bootstrapには便利なlist-inlineという便利なclassがあります。このclassをul要素に指定することでリスト要素が横に並びます。
テーブル
テーブルの使い方
table要素には、特別なスタイルの指定はかかりません[1]。Bootstrapデザインのテーブルを使うためにはtable要素にtableというclassを指定します。
行をストライプにする
行数が多いテーブルは見づらい時があります。その場合には、table要素にtable-stripedというclassを追加することで見やすくできます。ただし、このスタイルはCSS3の「:nth-child」を使用しているのでIE8では正常に機能しません。
枠線を表示する
Bootstrapのテーブルのデザインは基本的に横線のみがデザインされますが、枠線を表示したいこともあるでしょう。その場合にはtable要素にtable-borderedというclassを追加することで、枠線のあるテーブルを作ることができます。
特定の行にカーソルがある時の背景色を変更する
table要素にtable-hoverclassというclassを追加することで、tbody要素の特定の行にマウスカーソルがある時にその行の背景色を変えることができます。インターフェース作成時に役立つでしょう。
行間を詰める
Bootstrapのテーブルデザインは余白を多めに取ったデザインですが、行数が多いなどの理由で行間を詰めたい場合があります。その場合はtable要素にtable-condensedというclassを追加することで、行間の詰まったテーブルを作ることができます。
エラー・警告などのデザイン
Webページのデザインにはあまり登場しませんが、Webアプリやインターフェースをデザインしていると、必要になるエラー・警告等のclassがあります。
それぞれ、デフォルトで次のclassが準備されています。
active |
選択されている事を表す灰色の背景 |
success |
処理済・処理成功を表す緑の背景 |
info |
情報を表す水色の背景 |
warning |
警告を表す黄色の背景 |
danger |
エラーを表す赤色の背景 |
次のようにtr要素にこれらのclassを指定することで、行自体に背景を敷くことができます。
また、thまたはtd要素に指定すれば、セル単位で背景を変更できます。
レスポンシブテーブル
通常のテーブルはwidth: 100%;で生成されますが、ある程度横長になるテーブルの場合、スマートフォンで表示するとセル内の文字列に対して改行が入り見づらくなります。table-responsiveというclassをつけたdiv要素でテーブルをラップすることで、スマートフォン(幅768pxより小さい画面)で表示した際に横スクロールができるようになります。
テーブル関連のまとめ
テーブルは色々とバリエーションがありましたが、これらのclassを重ねがけすることで、行間の狭いストライプテーブルを作るなど、様々な応用ができます。ぜひ試してみてください。
フォーム
フォームの使い方を見ていきます。フォームは基本的に、input要素など入力部品にform-controlというclassを指定して使うことになります[2]。
label要素はチェックボックスなど一部を除いてラップするのでは無く基本的にfor属性で参照する方法が推奨されています。またinput要素とlabel要素をform-groupというclassを指定したdiv要素でラップします。
一行フォーム
ログインフォームなど、一行で表示したいフォームも考えられます。その場合には、form要素にform-inlineというclassを、label要素にsr-onlyというclassを指定します。なお、スマートフォン(幅768pxより小さい画面)で表示した際には縦並びになります。
横並びのフォーム
第2回で説明したグリッドシステムを利用できるフォームです。form要素にform-horizontalというclassを指定して使います。そうするとform-groupのついたdiv要素がグリッドシステムでいうrow要素の働きをします。そして、label要素にはcontrol-labelというclassをつけた上でグリッドシステムで幅を、input要素はdivでラップした上でグリッドシステムで幅を指定します。
マークアップ方法が違うチェックボックスとラジオボタン要素
前項で基本的にlabel要素はfor属性でinput要素を参照すると述べましたが、例外があります。それがチェックボックスとラジオボタン要素です。この要素は例外的にlabel要素でinput要素をラップします。
インラインチェクボックス
選択肢名が短いチェックボックスやラジオボタンを横並びで表示したい時、チェックボックスの場合はcheckbox-inline、ラジオボタンの場合はradio-inlineというclassをlabel要素に指定します。
静的な要素
フォーム内に入力できない確定の情報を表示したい場合、p要素にform-control-staticというclassを指定することで、フォームのデザインに合わせて静的な要素を表示できます。
バリデーションの表示方法
最近ではフォームにバリデーション機能(入力のミスをチェックする機能)をつけることが多くなっています。Bootstrapでもバリデーション結果を表示するためのclassが用意されています。使用方法はform-group要素(form-groupをclassに指定した要素)にhas-[ステータス]というclassを追加することで利用できます。
has-success |
入力結果に問題が無いことを示す緑色の表示 |
has-warning |
入力結果に警告があることを示すオレンジ色の表示 |
has-error |
入力結果にエラーがあることを示す赤色の表示 |
送信時のチェックや登録フォームでユーザー名が重複してないかなどのチェックに使うことになると思いますが、大抵の場合はJavaScript・jQueryを使用して動的に指定することになるでしょう。
グラフィックアイコンを併用したバリデーション
前項ではフォームの色を変更しましたが、グラフィックアイコンと併用して利用することもできます。その場合には後述で説明するグラフィックアイコンのclassを追加し、かつform-control-feedbackというclassを指定します(グラフィックアイコンの詳しい使い方は次回説明します)。
フォームサイズの変更
フォームのサイズを変更することもできます。
まず縦幅(フォントサイズ)を変更するためにBootstrapでは2つのclassが用意されています。サイズをより大きくするinput-lgと、より小さくするinput-smです。それぞれ、input要素に指定して使います。
横幅を変更したい場合には、グリッドシステムでラップすることが推奨されています。
フォームの解説テキスト
input要素の下に解説文章を表示する方法が提供されています。form-groupのついた要素内で、(input要素と兄弟要素になるように)help-blockというclassを指定した要素を配置します。
ボタンの意味に合わせたデザイン
button要素にはbtnというclassと、ボタンの意味・ステータスに合わせたclassを指定することで、フォームのボタンをデザインできます。button要素以外にもa要素・input要素(type属性がbutton・submitのもの)に指定して使うこともできます。
ボタンのサイズ変更
Bootstrapではボタンのサイズはノーマルを含め4種類提供されます。次のclassを追加で指定することで利用できます。
btn-lg |
大きいサイズ |
指定なし |
通常のサイズ |
btn-sm |
小さめのサイズ |
btn-xs |
凄く小さいサイズ |
ブロックレベルボタン
通常button要素はインラインレベルでレンダリングされます。しかしログインウィンドウなどで横幅一杯(ブロックレベル)として配置したい場合があります。その場合にはbtn-blockというclassを追加することでブロックレベル要素にできます。
ボタンのアクティブ表示
ボタンが現在押されてる状態を示すために、activeというclassに指定することでアクティブであることを表示できます。例えば、表示方法の選択などで利用できるでしょう。
ボタングループとボタンのアクティブ表示を利用したUI
実際のUIを例に見ていきましょう。
このUIは、表示方法を切り替えるボタンをボタングループにすることで、表示方法が「2種類あること」を説明し、ボタンのアクティブ表示で「どちらが選択されているか」を示しています。
※右側の表示件数の選択UIは次回説明するドロップダウンリストを利用しています。
画像
レスポンシブイメージclass
Bootstrapはレスポンシブデザインをベースで設計されています。そのため、画面サイズに応じて画像が伸縮する必要が出てくるでしょう。その際に指定を便利にするのがimg-responsiveというclassです。このclassを指定すると、max-width:100%; height:auto;が設定されます。つまり、はみ出ないように天地成り行きで画像を調整してくれます 。
イメージサーフェス
img要素にクラスを指定して使用します。 角丸・円・フレームと種類がありますがCSS3のboader-roundプロパティで実装されていますので、IE8では丸みがかかりません。そのことを念頭において使用しましょう。
ヘルパークラス群
アラートの表示に使用するクラスから一般的な便利コンポネートが用意されています。 その中で、サイトデザインに欠かせないクラスを抜粋して紹介します。これらのクラスにはLESSでミックスインとして利用することを前提にしたクラスも多くあります。さらなる活用法はLESSカスタマズの回に説明します。
フロート関連のクラス
サイト構築には必須となったfloatプロパティの設定を便利にするクラス群です。
clearfix
floatプロパティを使ったサイトを制作したことある方なら、お世話になっているだろうclearfixも組み込まれています。御存知の通りclearfixとはfloatの「浮動化」と「後続する内容の流し込み」の特性によってfloat要素をラップする要素に高さがなくなる問題(背景が指定できない・レイアウトが崩れる等)をHTMLを汚さずにスマートに実装するためのCSSの設定です。
使用方法は単体のclearfixと同様にfloatプロパティを設定した要素を子要素に持つ親要素に指定します。
クイックフロート
左右へのフロートを簡単に実現するためのclassは次のとおりです。この設定は!importantルールがつくため、使用の際は注意しましょう。次回に説明するナビバーコンポーネントの整列にも利用します。
pull-left |
左へフロート |
pull-right |
右へフロート |
要素の表示・非表示
前回紹介したレスポンシブユーティリティとは別に、コンテンツの表示・非表示を簡単にできます。このclassの設定には!importantルールがつくため、常用するというよりはJavaScsript・jQuery等から動的に操作するときに使ったほうが良いでしょう。
show |
display: block; |
元がinlineでも強制的にblockになるので注意 |
hidden |
display: none !important; visibility: hidden !important; |
|
invisible |
visibility: hidden; |
要素の場所は確保されるが不可視になる |
sr-onlyクラス
前項の「一行フォーム」で軽く説明しましたが、このclassを指定することでこのclassを指定された要素は1px×1px要素になり、表示上見えなくなります。わざわざdisplay:noneではなく、このような指定にしているのには理由があります。
それは視覚障がい者などが利用するスクリーンリーダー(音声読み上げソフト)で読み上げる対象となるためです。
表示はしてほしくないけど、読み上げて欲しい要素にこのclassを指定します。
その他のBootstrapの基本スタイル
ここまででよく利用するBootstrapのスタイルを解説してきましたが、上記以外にも役に立つスタイルがあります。また、WebアプリUI設計のコンポーネントとしてシステムメッセージを表示するスタイルなども用意されていますが、今回の連載はサイトデザインが目的なので割愛しました。
英語にはなりますが、公式サイトに詳細な説明とサンプルコードがあり、コピーアンドペーストで利用できるのもが一杯ありますので、欲しい機能が上記の説明にない場合は一読してみることをおすすめします。
次回は、もう少し複雑なデザインパーツであるコンポーネントを紹介します。