Buttons
Buttons(ボタン)はフォームやダイアログなどのアクションにカスタムボタンスタイルを利用できます。 サイズや状態管理に対応しています。ボタンの使い方の例を示します。
Examples
いくつかの定義済みのボタンスタイルがあり, それぞれ目的を持っています。
Conveying meaning to assistive technologies
色を用いた場合, 視覚でしか意味を伝えることができないのでスクリーンリーダーなどに対応することはできません。
そのため, 色で付加された情報がコンテンツから明らかであるか, 追加のテキストを不可視で追加する .sr-only
クラスなどの手法を用いて含まれているかを確認してください。
.btn
クラスは <button>
要素で使用するために設計されていますが, <a>
や <input>
要素でも利用できます。
(ブラウザによってはレンダリングされる内容に差異が可能性があります)
.btn
を a
で機能のトリガーとして利用する場合は role="button"
を適用する必要があります。
アウトラインボタン:.btn-outline-*
を適用すると枠線を残してボタンの背景色を透過することができます。
Sizes
ボタンのサイズを .btn-lg
, .btn-sm
を適用すると変更できます。
.btn-block. を適用すると, 親要素の幅に合わせることができます。
Active state
ボタンを押すと, 押された状態のままに表示することができます。(背景やボーダーが暗くなり, 影がつきます)
擬似クラスを使うので, <button>
にクラスを追加する必要はありません。
強制的に押された状態を表示するには aria-pressed="true"
とします。
Disabled state
ボタンを無効状態にするには aria-disabled="true"
を適用します。
無効化ボタンを <a>
要素で使用した場合はすこし動きが違います。
<a>
は disabled
属性をサポートしていません。 .disabled
クラスを利用する必要があります。
- アンカーボタンを無効化したスタイルを含んでいます。ブラウザがその機能をサポートしているのであればカーソルは見えなくなるでしょう。
- 無効化するボタンには aria-distabled=”true” 属性をつけてください (スクリーンリーダー用)
Link functionality caveat
.disabled
クラスは <a>
の機能を使えなくする pointer-events: none
を使用していますが, この CSS プロパティは標準化されていません。
加えて, もしブラウザが pointer-events: none
をサポートしていない場合, キーボードナビゲーションが影響を受けず残り続け, キーボードを用いたユーザやスクリーンリーダーなどの補助機能を使ったユーザはこのリンクを開くことができます。
安全のため, これらのリンクに tabindex="-1"
属性(キーボードからのフォーカスを防ぐ)をつけ, 加えてカスタム JavaScript を用いてこれらの機能を無効にしてください。
コントロールボタンで, ツールバーのようなコンポーネントのボタンの状態を示したり, ボタンのグループが作成可能です。
Toggle states
ボタンを押された状態に切り替えるには, data-toggle="button"
を追加します。
ボタンをあらかじめ押された状態に切り替えておく場合は, .active
クラスと aria-pressed="true"
を <button>
に適用します。
.button
スタイルは, <label>
などの他の要素に適用すると, チェックボックスやラジオボタンの切り替えを行うことが可能です。
.btn
グループに data-toggle="buttons"
を追加してJavaScript経由で切替動作を有効にします。
単一またはグループの入力電源ボタンも作成可能。
これらのボタンのチェック状態は, クリックイベントによってのみ更新されます。
例えば <input type="reset">
で入力を更新するために別のメソッドを使用する場合や,input
の checked
プロパティに適用する場合は, <label>
を .active
を切り替える必要があります。
事前にボタンをチェック済みにしておくには, <label>
に .active
クラスを追加する必要があります。
Methods
Method |
Description |
$().button('toggle') |
Toggles push state. Gives the button the appearance that it has been activated. |
$().button('dispose') |
Destroys an element’s button. |