zui
Version:
一个基于 Bootstrap 深度定制开源前端实践方案,帮助你快速构建现代跨屏应用。
256 lines (219 loc) • 8.23 kB
Markdown
section: control
id: checkbox
description: 内联或块级的多选和单选框
icon: icon-check-sign
filter: duoxuanhedanxuankuang dxhdx radio
---
# 多选和单选框
## 默认外观
### 多选框
复选框(checkbox)允许用户选择多个选项,不同于 `<select>`,这些选项是直接展示的。
为 `<input type="checkbox">` 设置 `disabled` 属性来应用禁用样式,如果为 `.checkbox` 添加 `disabled` 类,则整个复选框包括文字部分都会应用禁用样式。
将多个复选框堆叠形成一个复选框组。
<example>
<div class="checkbox">
<label>
<input type="checkbox"> 复选框 1
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox"> 复选框 2
</label>
</div>
<div class="checkbox disabled">
<label>
<input disabled type="checkbox"> 被禁用的复选框
</label>
</div>
</example>
```html
<div class="checkbox">
<label>
<input type="checkbox"> 复选框 1
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox"> 复选框 2
</label>
</div>
<div class="checkbox disabled">
<label>
<input disabled type="checkbox"> 被禁用的复选框
</label>
</div>
```
### 单选框
单选框(radio)与复选框不同之处在于同一组的单选框只能选中其中一个。
与复选框类似,可以通过 `disabled` 属性和 `disabled` 类来添加禁用样式。
将多个单选框堆叠形成一个单选框组。
<example>
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample1"> 单选框 1
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample1"> 单选框 2
</label>
</div>
<div class="radio disabled">
<label>
<input disabled type="radio" name="radioOptionsExample1"> 被禁用的单选框
</label>
</div>
</example>
```html
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample"> 单选框 1
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample"> 单选框 2
</label>
</div>
<div class="radio disabled">
<label>
<input disabled type="radio" name="radioOptionsExample"> 被禁用的单选框
</label>
</div>
```
### 不包括文字内容的复选框和单选框
如果不在 `<label>` 内包含任何文本则可以得到一个没有文字内容的复选框或单选框。这种用法适合少数情况,例如为表格添加一个复选框的列。
<example class="row">
<div class="col-xs-6">
<div class="checkbox">
<label>
<input type="checkbox">
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox">
</label>
</div>
<div class="checkbox disabled">
<label>
<input disabled type="checkbox">
</label>
</div>
</div>
<div class="col-xs-6">
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample2">
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample2">
</label>
</div>
<div class="radio disabled">
<label>
<input disabled type="radio" name="radioOptionsExample2">
</label>
</div>
</div>
</example>
```html
<div class="checkbox">
<label>
<input type="checkbox">
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="radioOptionsExample">
</label>
</div>
```
## 内联形式
有时将多个复选框或单选框放置在一行显示比较好。这时只需要为 `<label>` 添加 `checkbox-inline` 或 `radio-inline` 类即可,不需要额外的 `<div>` 来包裹 `<label>`。
### 内联多选框
<example>
<label class="checkbox-inline">
<input type="checkbox"> 多选框 1
</label>
<label class="checkbox-inline">
<input type="checkbox"> 多选框 2
</label>
<label class="checkbox-inline">
<input disabled type="checkbox"> 被禁用的多选框
</label>
</example>
```html
<label class="checkbox-inline">
<input type="checkbox"> 多选框 1
</label>
<label class="checkbox-inline">
<input type="checkbox"> 多选框 2
</label>
<label class="checkbox-inline">
<input disabled type="checkbox"> 被禁用的多选框
</label>
```
### 内联单选框
<example>
<label class="radio-inline">
<input type="radio" name="radioOptionsExample3"> 单选框 1
</label>
<label class="radio-inline">
<input type="radio" name="radioOptionsExample3"> 单选框 2
</label>
<label class="radio-inline">
<input disabled type="radio" name="radioOptionsExample3"> 被禁用的单选框
</label>
</example>
```html
<label class="radio-inline">
<input type="radio" name="radioOptionsExample"> 单选框 1
</label>
<label class="radio-inline">
<input type="radio" name="radioOptionsExample"> 单选框 2
</label>
<label class="radio-inline">
<input disabled type="radio" name="radioOptionsExample"> 被禁用的单选框
</label>
```
## 高级外观
高级外观的多选和单选框使用自定义的外观代替原生外观,在所有浏览器都具有一致的体验。
<example>
<div class="checkbox-primary"><input type="checkbox" id="primaryCheckbox1"><label for="primaryCheckbox1">未选中</label></div>
<div class="checkbox-primary"><input type="checkbox" checked="checked" id="primaryCheckbox2"><label for="primaryCheckbox2">选中</label></div>
<div class="checkbox-primary"><input type="checkbox" checked="checked" disabled="disabled" id="primaryCheckbox3"><label for="primaryCheckbox3">禁用</label></div>
</example>
```html
<div class="checkbox-primary"><input type="checkbox" id="primaryCheckbox1"><label for="primaryCheckbox1">未选中</label></div>
<div class="checkbox-primary"><input type="checkbox" checked="checked" id="primaryCheckbox2"><label for="primaryCheckbox2">选中</label></div>
<div class="checkbox-primary"><input type="checkbox" checked="checked" disabled="disabled" id="primaryCheckbox3"><label for="primaryCheckbox3">禁用</label></div>
```
<example>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" id="primaryradio1"><label for="primaryradio1">选项一</label></div>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" checked="checked" id="primaryradio2"><label for="primaryradio2">选项二</label></div>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" checked="checked" id="primaryradio3"><label for="primaryradio3">选项三</label></div>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" checked="checked" disabled="disabled" id="primaryradio4"><label for="primaryradio4">禁用</label></div>
</example>
```html
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" id="primaryradio1"><label for="primaryradio1">选项一</label></div>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" checked="checked" id="primaryradio2"><label for="primaryradio2">选项二</label></div>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" checked="checked" id="primaryradio3"><label for="primaryradio3">选项三</label></div>
<div class="radio-primary"><input type="radio" name="primaryRadioGroup1" checked="checked" disabled="disabled" id="primaryradio4"><label for="primaryradio4">禁用</label></div>
```
高级外观还可以不使用 `<input>` 元素,在此种情况下,为 `.checkbox-primary` 或 `.radio-primary` 添加 `.checked` 类标记为选中状态,用户无法通过点击来切换选中状态,但可以通过程序手动添加或移除 `.checked` 来更改选中状态。
<example>
<div class="checkbox-primary"><label>未选中</label></div>
<div class="checkbox-primary checked"><label>选中</label></div>
<div class="radio-primary"><label>未选中</label></div>
<div class="radio-primary checked"><label>选中</label></div>
</example>
```html
<div class="checkbox-primary"><label>未选中</label></div>
<div class="checkbox-primary checked"><label>选中</label></div>
<div class="radio-primary"><label>未选中</label></div>
<div class="radio-primary checked"><label>选中</label></div>
```