mirror of
https://github.com/Estom/notes.git
synced 2026-02-11 06:15:45 +08:00
187 lines
7.0 KiB
Markdown
187 lines
7.0 KiB
Markdown
## 1 表单
|
||
|
||
### 1)基本表单
|
||
|
||
Bootstrap 为单独的表单元素预定义了全局样式,表单内元素的具体使用如下:
|
||
|
||
* 设置了 .form-control 类的 `<input>`、`<textarea>` 和 `<select>` 元素都将被默认设置宽度属性为 width: 100%;。
|
||
* 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。
|
||
|
||
```html
|
||
<div class="container">
|
||
<div class="row">
|
||
<form>
|
||
<div class="form-group">
|
||
<label for="exampleInputEmail1">Email address</label>
|
||
<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="exampleInputPassword1">Password</label>
|
||
<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
|
||
</div>
|
||
<button type="submit" class="btn btn-default">Submit</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
```
|
||
|
||
### 2)内联表单
|
||
|
||
为 `<form>` 元素添加 .form-inline 类可使其内容左对齐并且表现为 inline-block 级别的控件。
|
||
|
||
> 只适用于 viewport 至少在 768px 宽度时(视口宽度再小的话就会使表单折叠)。
|
||
|
||
```html
|
||
<div class="container">
|
||
<div class="row">
|
||
<form class="form-inline">
|
||
<div class="form-group">
|
||
<label for="exampleInputName2">Name</label>
|
||
<input type="text" class="form-control" id="exampleInputName2" placeholder="Jane Doe">
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="exampleInputEmail2">Email</label>
|
||
<input type="email" class="form-control" id="exampleInputEmail2" placeholder="jane.doe@example.com">
|
||
</div>
|
||
<button type="submit" class="btn btn-default">Send invitation</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
```
|
||
|
||
> **需要注意的是:**
|
||
>
|
||
> 在内联表单,我们将这些元素的宽度设置为 width: auto;,因此,多个控件可以排列在同一行。
|
||
>
|
||
> 如果你没有为每个输入控件设置 label 标签,屏幕阅读器将无法正确识别。对于这些内联表单,你可以通过为 label 设置 .sr-only 类将其隐藏。
|
||
|
||
```html
|
||
<div class="container">
|
||
<div class="row">
|
||
<form class="form-inline">
|
||
<div class="form-group">
|
||
<label class="sr-only" for="exampleInputEmail3">Email address</label>
|
||
<input type="email" class="form-control" id="exampleInputEmail3" placeholder="Email">
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="sr-only" for="exampleInputPassword3">Password</label>
|
||
<input type="password" class="form-control" id="exampleInputPassword3" placeholder="Password">
|
||
</div>
|
||
<button type="submit" class="btn btn-default">Sign in</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
```
|
||
|
||
### 3)水平排列的表单
|
||
|
||
通过为表单添加 .form-horizontal 类,并联合使用 Bootstrap 预置的栅格类,可以将 label 标签和控件组水平并排布局。
|
||
|
||
> 这样做将改变 .form-group 的行为,使其表现为栅格系统中的行(row),因此就无需再额外添加 .row 了。
|
||
|
||
```html
|
||
<div class="container">
|
||
<div class="row">
|
||
<form class="form-horizontal">
|
||
<div class="form-group">
|
||
<label for="inputEmail3" class="col-sm-2 control-label">Email</label>
|
||
<div class="col-sm-10">
|
||
<input type="email" class="form-control" id="inputEmail3" placeholder="Email">
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<label for="inputPassword3" class="col-sm-2 control-label">Password</label>
|
||
<div class="col-sm-10">
|
||
<input type="password" class="form-control" id="inputPassword3" placeholder="Password">
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-sm-offset-2 col-sm-10">
|
||
<button type="submit" class="btn btn-default">Sign in</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
```
|
||
|
||
### 4)单选框和多选框
|
||
|
||
#### a. 默认外观
|
||
|
||
* 单选框使用 class 为 .radio
|
||
* 多选框使用 class 为 .checkbox
|
||
|
||
单选框或多选框的样式要定义在 div 元素中(该元素作为容器元素,包含文本和单选或多选框元素)。
|
||
|
||
```html
|
||
<div class="container">
|
||
<div class="row">
|
||
<form>
|
||
<div class="checkbox">
|
||
<label>
|
||
<input type="checkbox" value="">
|
||
Option one is this and that—be sure to include why it's great
|
||
</label>
|
||
</div>
|
||
<div class="checkbox disabled">
|
||
<label>
|
||
<input type="checkbox" value="" disabled>
|
||
Option two is disabled
|
||
</label>
|
||
</div>
|
||
|
||
<div class="radio">
|
||
<label>
|
||
<input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>
|
||
Option one is this and that—be sure to include why it's great
|
||
</label>
|
||
</div>
|
||
<div class="radio">
|
||
<label>
|
||
<input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
|
||
Option two can be something else and selecting it will deselect option one
|
||
</label>
|
||
</div>
|
||
<div class="radio disabled">
|
||
<label>
|
||
<input type="radio" name="optionsRadios" id="optionsRadios3" value="option3" disabled>
|
||
Option three is disabled
|
||
</label>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
```
|
||
|
||
#### b. 内联单选和多选框
|
||
|
||
通过将 .checkbox-inline 或 .radio-inline 类应用到一系列的多选框(checkbox)或单选框(radio)控件上,可以使这些控件排列在一行。
|
||
|
||
```html
|
||
<div class="container">
|
||
<div class="row">
|
||
<form>
|
||
<label class="checkbox-inline">
|
||
<input type="checkbox" id="inlineCheckbox1" value="option1"> 1
|
||
</label>
|
||
<label class="checkbox-inline">
|
||
<input type="checkbox" id="inlineCheckbox2" value="option2"> 2
|
||
</label>
|
||
<label class="checkbox-inline">
|
||
<input type="checkbox" id="inlineCheckbox3" value="option3"> 3
|
||
</label>
|
||
|
||
<label class="radio-inline">
|
||
<input type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1"> 1
|
||
</label>
|
||
<label class="radio-inline">
|
||
<input type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2"> 2
|
||
</label>
|
||
<label class="radio-inline">
|
||
<input type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3"> 3
|
||
</label>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
``` |