border 看起来简单(“加个边框”),但新手经常被这些问题卡住:
- 为什么加了
border盒子变大了? - 怎么只加底边当分割线?
- 虚线/圆角/发光边框怎么写最稳?
这篇文章把 border 的常用写法整理成“速查 + 示例”,你可以直接复制到项目里用。
border 最常用的简写(90% 场景够用)
border 简写顺序不强制,但通常按:宽度 → 样式 → 颜色。
.box {
border: 1px solid #e5e7eb;
}
- 宽度:
1px/2px/0 - 样式:
solid/dashed/dotted/double - 颜色:任何合法颜色
你也可以拆开写:
.box {
border-width: 1px;
border-style: solid;
border-color: #e5e7eb;
}
只加单边:做分割线、列表项边界
只要底边(最常见)
.item {
border-bottom: 1px solid #e5e7eb;
}
只要左边(时间线/强调条)
.note {
border-left: 4px solid #3b82f6;
padding-left: 12px;
}
圆角 border-radius:让边框更“现代”
.card {
border: 1px solid #e5e7eb;
border-radius: 12px;
}
.pill {
border-radius: 9999px;
}
如果你要“上方圆角、下方直角”:
.panel {
border-radius: 12px 12px 0 0;
}
border 与盒模型:为什么 border 会把盒子撑大?
默认情况下(box-sizing: content-box),元素设置 width/height 指的是内容区;加了 padding/border 会把外观尺寸变大。
解决方式通常是:
* {
box-sizing: border-box;
}
border-box 下,width 包含内容 + padding + border,布局会更稳定。
虚线/点线:让它更“均匀”
.divider {
border-bottom: 1px dashed #d1d5db;
}
虚线想更细腻,通常需要:
- 控制颜色对比(不要太深)
- 控制宽度(1px 最稳)
如果你希望“更可控的虚线”,可以用背景渐变模拟,但那属于进阶玩法。
outline vs border:什么时候用 outline?
outline 不占空间,不会影响布局尺寸,常用于焦点可访问性样式:
.button:focus-visible {
outline: 2px solid #2563eb;
outline-offset: 2px;
}
如果你发现“加边框导致按钮跳动”,可以考虑用 outline 做交互态强调。
8 个常见效果示例(复制即用)
示例 1:卡片边框(基础)
.card {
border: 1px solid #e5e7eb;
border-radius: 12px;
background: #fff;
}
示例 2:卡片 hover 强调
.card:hover {
border-color: #93c5fd;
}
示例 3:分割线(列表)
.list > li {
border-bottom: 1px solid #f3f4f6;
}
.list > li:last-child {
border-bottom: 0;
}
示例 4:强调条(左边)
.callout {
border-left: 4px solid #22c55e;
padding-left: 12px;
}
示例 5:圆角按钮边框
.btn {
border: 1px solid #d1d5db;
border-radius: 10px;
padding: 10px 14px;
}
示例 6:头像描边(常见 UI)
.avatar {
border: 2px solid #fff;
border-radius: 9999px;
}
示例 7:输入框 focus 态
.input {
border: 1px solid #d1d5db;
border-radius: 10px;
}
.input:focus {
border-color: #2563eb;
outline: none;
}
示例 8:发光边框(适度使用)
.glow {
border: 1px solid rgba(59, 130, 246, 0.6);
box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
border-radius: 12px;
}
常见问题(FAQ)
为什么 border 把盒子撑大?
默认 box-sizing: content-box 下,width 不包含 border/padding。建议全局使用 box-sizing: border-box。
如何只给底边?
用 border-bottom: 1px solid ...,并对最后一项去掉底边。
边框和阴影有什么区别?
border 是明确的边界线;box-shadow 是阴影/发光效果,通常不占空间,视觉上更柔和。
怎么做“1px 细线”在高分屏更清晰?
一般 1px 已够用;如果追求极致,可以用 transform 缩放或背景渐变模拟,但成本更高。
下一步:把这些样式用到模板与页面里
- 在线网页制作平台选型:/about-html/online-website-builder-platform
- 可视化编辑器上手:/about-html/visual-html-editor-guide
- 模板三条路径对比:/about-html/html-templates-comparison
- 直接开始制作:/builder
