1. Bootstrap常用表单组件
Bootstrap是一个强大的前端框架,它提供了丰富的表单组件,能够帮助开发者快速构建漂亮、实用的表单页面。本文将详解Bootstrap常用表单组件,让读者学会如何运用它们去开发表单页面。
2. 基础组件
2.1 文本框
文本框是表单页面最常用的元素之一,Bootstrap提供了多种款式和设置,满足不同场景下的需求。
首先,我们来看一下最基本的文本框:
<div class="form-group">
<label for="exampleFormControlInput1">Email address</label>
<input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com">
</div>
可以明显看出,一个文本框需要放置在一个form-group的容器中,并且需要加上form-control类。如果需要一个密码框,只需将type属性设置为password:
<div class="form-group">
<label for="exampleFormControlInput1">Password</label>
<input type="password" class="form-control" id="exampleFormControlInput1">
</div>
接下来,我们来看一下一些常用的属性设置。例如,设置文本框的尺寸,只需设置input的class属性为form-control-sm(小型)、form-control(默认)、form-control-lg(大型)。
<!-- 小型文本框 -->
<div class="form-group">
<input type="text" class="form-control form-control-sm" placeholder="Small input">
</div>
<!-- 默认文本框 -->
<div class="form-group">
<input type="text" class="form-control" placeholder="Default input">
</div>
<!-- 大型文本框 -->
<div class="form-group">
<input type="text" class="form-control form-control-lg" placeholder="Large input">
</div>
此外,Bootstrap还提供了其他一些常用的设置,如添加前缀和后缀文本、设置只读和禁用等。例如,要在文本框前添加一个表单前缀,只需通过input-group实现:
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">@</span>
</div>
<input type="text" class="form-control" placeholder="Username">
</div>
</div>
要在文本框后添加一个表单后缀,只需用input-group-append代替input-group-prepend。设置只读和禁用非常简单,只需在input中设置readonly或disabled属性即可。
2.2 下拉菜单
下拉菜单是另一个常用的表单元素,Bootstrap提供了许多选项,允许开发者自定义下拉菜单的外观和行为。
下面是一个简单的下拉菜单:
<div class="form-group">
<label for="exampleFormControlSelect1">Example select</label>
<select class="form-control" id="exampleFormControlSelect1">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
可以看到,一个下拉菜单包含一个label标签和一个select标签,select标签内包含多个option标签,每个option标签定义了下拉菜单的一个选项。
如果要添加多选功能,只需在select标签中添加multiple属性:
<div class="form-group">
<label for="exampleFormControlSelect2">Example multiple select</label>
<select multiple class="form-control" id="exampleFormControlSelect2">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
Bootstrap还提供了一些选项,如禁用某个选项、在选项中添加分组、添加表单前后缀等。下面是一个例子,演示了如何添加表单前缀和后缀以及禁用某些选项:
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Options</span>
</div>
<select class="custom-select" id="inputGroupSelect01">
<option selected>Choose...
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option disabled>...
<option value="4">Four</option>
</select>
</div>
</div>
2.3 单选框和复选框
单选框和复选框是另一组常用的表单元素,它们都用于允许用户进行选项选择。
下面是一个简单的示例,展示了如何创建一个单选框和一个复选框:
<div class="form-check">
<input class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Option one is this and that—be sure to include why it's great
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1">
<label class="form-check-label" for="defaultCheck1">
Default checkbox
</label>
</div>
可以看到,一个单选框和一个复选框都需要一个label和一个input标签。默认情况下,单选框和复选框的外观比较简单,但我们可以使用form-check、form-check-inline等类来自定义样式,类似于表单类中的样式自定义。
3. 高级组件
3.1 输入框组
在一些复杂的表单页面中,我们需要将多个输入框放在一起,形成一个输入框组。Bootstrap提供了一组类,称为input-group,用于实现这个功能。
下面是一个简单的示例:
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">@</span>
</div>
<input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
</div>
在上面的代码中,我们使用了input-group和input-group-prepend类,将一个文本框和一个前缀文本结合成了一个输入框组。用户的输入会显示在文本框中,前缀文本用于提供一些上下文信息。
input-group还可以结合下拉菜单一起使用,实现下拉菜单和文本框的联动。
3.2 表单验证
表单验证是Web表单中必不可少的一环。Bootstrap提供了一组类,用于实现表单验证。通过在表单元素上添加相应的类,可以将表单验证功能集成到Bootstrap表单中。
例如,下面的代码演示了如何将文本框和表单验证结合使用:
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
在上面的代码中,我们通过type="email"来限制输入框只能输入email地址,以及在input元素中添加aria-describedby属性和form-text类来添加上下文说明。此外,我们还可以使用其他类,如is-valid和is-invalid,来表示输入是否合法。它们会在输入框的外部添加相应的样式,提示用户当前输入的正确性。例如,下面的代码中is-valid和is-invalid类用于表示输入是否合法:
<div class="form-group">
<label for="validationServer01">First name</label>
<input type="text" class="form-control is-valid" id="validationServer01" required>
<div class="valid-feedback">
Looks good!
</div>
<div class="invalid-feedback">
Please enter a valid first name.
</div>
</div>
3.3 表单自动完成
表单自动完成是一种非常方便的功能,它可以自动填充输入框中的数据。Bootstrap提供了一个名为autocomplete的属性,用于开启表单自动完成功能。
下面是一个简单的示例:
<form>
<div class="form-group">
<label for="exampleFormControlInput1">Email address</label>
<input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com" autocomplete="email">
</div>
</form>
在上面的代码中,我们使用了autocomplete属性,并将值设置为"email"。这告诉浏览器,该输入框是一个电子邮件地址,自动填充时应该使用与Email相对应的值。
4. 总结
本文详细介绍了Bootstrap常用的几个表单组件,包括文本框、下拉菜单、单选框、复选框、输入框组、表单验证和表单自动完成。希望读者可以通过这篇文章,掌握这些表单组件的使用方法,并在实际开发中灵活运用,开发出更加漂亮、实用的表单页面。