六维教程

CSS 表单样式

表单是网页收集信息的入口,登录、注册、搜索都靠它。默认的 input 和按钮样式简陋,CSS 能让表单整齐好看,交互也更友好。

表单的基础结构

一个完整表单由 form、label、input、textarea、button 组成。

<form>
  <div class="field">
    <label for="name">用户名</label>
    <input type="text" id="name" placeholder="请输入用户名">
  </div>
  <div class="field">
    <label for="email">邮箱</label>
    <input type="email" id="email" placeholder="name@example.com">
  </div>
  <button type="submit">提交</button>
</form>

labelfor 指向 input 的 id,点击标签文字也能聚焦输入框。placeholder 显示灰色提示文字。

输入框的基本样式

.field {
  margin-bottom: 16px;
}
input[type="text"],
input[type="email"] {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  box-sizing: border-box;
}

width: 100% 让输入框撑满父容器,box-sizing: border-box 保证 padding 不撑大宽度,这在盒模型里讲过。边框浅灰加圆角,输入框立刻精致。

聚焦状态

用户点进输入框时,边框高亮,反馈更清晰。

input:focus {
  outline: none;
  border-color: #3498db;
  box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2);
}

border-color 变蓝,外发光效果用 box-shadow 实现。:focus伪类的一种,选中获得焦点的元素。

label 的排列

标签放在输入框上面还是左边,用布局控制。

.field {
  display: flex;
  flex-direction: column;
}
.field label {
  margin-bottom: 6px;
  font-weight: bold;
  font-size: 13px;
}

flex 竖向排列,标签在上输入框在下,移动端表单的标准布局。

文本框和选择框

textareaselect 也要统一风格。

textarea {
  width: 100%;
  min-height: 100px;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
  resize: vertical;  /* 只允许垂直拉伸 */
}

select {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #fff;
}

textarea 默认可以任意拉伸,resize: vertical 限制只能上下拉。select 记得设背景白色,否则不同浏览器显示不一。

按钮样式

提交按钮和输入框配套。

button {
  width: 100%;
  padding: 12px;
  background: #3498db;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s;
}
button:hover {
  background: #2980b9;
}

去掉默认边框,蓝色底白字,悬停变深。cursor: pointer 让鼠标变手型,提示可点击。

必填和错误提示

给必填项加视觉标记。

.field label::after {
  content: "*";
  color: #e74c3c;
  margin-left: 2px;
}

用伪元素在每个标签后面加红色星号,提示必填。错误时给输入框加红色边框。

.field.error input {
  border-color: #e74c3c;
}

小结

表单样式从输入框入手,统一边框、内边距和圆角。:focus 加高亮反馈,label 用 flex 竖排,textarea 和 select 风格对齐,按钮与输入框配套。再配合伪元素标注必填项,一个专业表单就出来了。

上一篇
CSS 对齐与居中
下一篇
CSS 传统布局实战