Bootstrap 表单

表单是网站收集用户输入的入口。Bootstrap 5 的现代表单体系以 .form-control(输入控件)和 .form-label(标签)为核心,配合 .form-select.form-check 等类,让输入框、下拉框、复选框在不同设备上观感一致。

输入控件基础

输入框、文本域统一使用 .form-control,下拉框用 .form-select,标签用 <label class="form-label"> 并通过 for 属性与控件关联:

<!-- 本示例基于 CDN 引入的 Bootstrap 5(引入代码见"环境安装"章节);最基本的文本输入 -->
<div class="mb-3">
  <label for="email" class="form-label">邮箱</label>
  <input type="email" class="form-control" id="email" placeholder="name@example.com">
</div>
<div class="mb-3">
  <label for="city" class="form-label">城市</label>
  <select class="form-select" id="city">
    <option selected>请选择</option>
    <option value="1">北京</option>
    <option value="2">上海</option>
  </select>
</div>

显示效果:输入框带浅色边框、聚焦时变蓝并出现光晕;下拉框显示「请选择」且自带箭头,二者宽度都占满父容器。

复选框、开关与单选框

复选框用 .form-check 包裹,.form-check-input 是控件、.form-check-label 是文字;把外层容器换成 .form-switch 即得到拨动开关:

<!-- 复选框与开关 -->
<div class="form-check form-switch">
  <input class="form-check-input" type="checkbox" id="switch1" checked>
  <label class="form-check-label" for="switch1">开启消息通知</label>
</div>
<div class="form-check">
  <input class="form-check-input" type="radio" name="sex" id="male" checked>
  <label class="form-check-label" for="male">男</label>
</div>

显示效果:第一项是拨动式开关且处于开启状态;第二项是圆形单选钮,同组(name 相同)点击时互斥。

水平排列表单

把控件放进 .row,配合 col-*.col-form-label,即可让标签和输入框左右并排;用 g-3 控制列与列的间距:

<!-- 标签与输入框并排 -->
<div class="row g-3 align-items-center">
  <div class="col-auto">
    <label for="name" class="col-form-label">姓名</label>
  </div>
  <div class="col-auto">
    <input type="text" class="form-control" id="name" placeholder="请输入姓名">
  </div>
  <div class="col-auto">
    <button class="btn btn-primary">提交</button>
  </div>
</div>

显示效果:标签、输入框、按钮在同一行内垂直居中,间距均匀,整体呈紧凑的水平表单。

输入框组与校验

.input-group 可在输入框前后追加前缀文字或按钮(如货币符号、@);配合 .was-validated.is-invalid 还能显示红色错误提示:

<!-- 输入框组:前缀单位 -->
<div class="input-group mb-3">
  <span class="input-group-text">¥</span>
  <input type="number" class="form-control" value="99">
</div>
<div class="input-group">
  <span class="input-group-text">@</span>
  <input type="text" class="form-control" placeholder="用户名">
</div>

显示效果:两个输入框左侧分别拼接了「¥」和「@」的灰色小方块,形成一个整体控件,适合金额、账号等带单位的输入。

小结

Bootstrap 表单的核心是「.form-control 管控件、.form-label 管标签、.form-check 管选择项」,再按需使用 .form-select.input-group 与网格类即可搭建任意复杂度的表单。

笔记加载中…