ボタングループ
ボタングループと一緒に一連のボタンを単一の行にまとめ、JavaScript でそれらをスーパーパワーアップします。
基本の例
.btn-group
内の .btn
でボタンをラップします。オプションの JavaScript ラジオボタンやチェックボックススタイルの振る舞いを ボタンプラグイン で追加します。
<div class="btn-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-secondary">Left</button>
<button type="button" class="btn btn-secondary">Middle</button>
<button type="button" class="btn btn-secondary">Right</button>
</div>
正しい role
を確保し、ラベルを指定します。
一連のボタンがグループ化されていることを支援技術(スクリーンリーダーなど)に伝えるために、適切な role
属性を指定する必要があります。ボタングループの場合は role="group"
になり、ツールバーは role="toolbar"
になります。
さらに、正しい role 属性が存在するにもかかわらず、ほとんどの支援技術はグループやツールバーをアナウンスしないため、明示的なラベルを付ける必要があります。ここで提供する例では aria-label
を使用していますが、aria-labelledby
などの代替手段を使用することもできます。
ボタンツールバー
さらに複雑なコンポーネントのために、ボタングループのセットをボタンツールバーにまとめます。必要に応じてユーティリティクラスを使用して、グループ、ボタンなどを離します。
<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
<div class="btn-group mr-2" role="group" aria-label="First group">
<button type="button" class="btn btn-secondary">1</button>
<button type="button" class="btn btn-secondary">2</button>
<button type="button" class="btn btn-secondary">3</button>
<button type="button" class="btn btn-secondary">4</button>
</div>
<div class="btn-group mr-2" role="group" aria-label="Second group">
<button type="button" class="btn btn-secondary">5</button>
<button type="button" class="btn btn-secondary">6</button>
<button type="button" class="btn btn-secondary">7</button>
</div>
<div class="btn-group" role="group" aria-label="Third group">
<button type="button" class="btn btn-secondary">8</button>
</div>
</div>
ツールバーにボタングループと入力グループを自由に組み合わせてください。上記の例と同様に、物事を適切に間隔を開けるためにいくつかのユーティリティが必要になる可能性があります。
<div class="btn-toolbar mb-3" role="toolbar" aria-label="Toolbar with button groups">
<div class="btn-group mr-2" role="group" aria-label="First group">
<button type="button" class="btn btn-secondary">1</button>
<button type="button" class="btn btn-secondary">2</button>
<button type="button" class="btn btn-secondary">3</button>
<button type="button" class="btn btn-secondary">4</button>
</div>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text" id="btnGroupAddon">@</div>
</div>
<input type="text" class="form-control" placeholder="Input group example" aria-label="Input group example" aria-describedby="btnGroupAddon">
</div>
</div>
<div class="btn-toolbar justify-content-between" role="toolbar" aria-label="Toolbar with button groups">
<div class="btn-group" role="group" aria-label="First group">
<button type="button" class="btn btn-secondary">1</button>
<button type="button" class="btn btn-secondary">2</button>
<button type="button" class="btn btn-secondary">3</button>
<button type="button" class="btn btn-secondary">4</button>
</div>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text" id="btnGroupAddon2">@</div>
</div>
<input type="text" class="form-control" placeholder="Input group example" aria-label="Input group example" aria-describedby="btnGroupAddon2">
</div>
</div>
サイズ
グループ内のすべてのボタンにボタンサイズクラスを適用するのではなく、複数のグループをネストする場合にそれぞれに .btn-group-*
を追加するだけです。
<div class="btn-group btn-group-lg" role="group" aria-label="...">...</div>
<div class="btn-group" role="group" aria-label="...">...</div>
<div class="btn-group btn-group-sm" role="group" aria-label="...">...</div>
ネスト
ボタンのシリーズとドロップダウンメニューを組み合わせる場合は、.btn-group
内に .btn-group
を配置します。
<div class="btn-group" role="group" aria-label="Button group with nested dropdown">
<button type="button" class="btn btn-secondary">1</button>
<button type="button" class="btn btn-secondary">2</button>
<div class="btn-group" role="group">
<button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Dropdown link</a>
<a class="dropdown-item" href="#">Dropdown link</a>
</div>
</div>
</div>
垂直バリエーション
一連のボタンを水平ではなく、垂直にスタックして表示します。分割ボタンのドロップダウンはここでサポートされていません。
<div class="btn-group-vertical">
...
</div>