css 想给按钮添加阴影和圆角怎么办_box-shadow 与 border-radius

按钮阴影用box-shadow、圆角用border-radius,二者独立可共存;box-shadow阴影始终矩形但随轮廓裁剪,常用写法如0 2px 4px rgba(0,0,0,0.2);border-radius推荐4px或20px像素值,避免超高度一半。

给按钮加阴影用 box-shadow,圆角用 border-radius

两个

属性完全独立,可以同时使用,互不影响。常见错误是把 box-shadow 当成“边框阴影”而误调 border 相关值,或以为 border-radius 会影响阴影形状——其实阴影始终是矩形投射,只是会随元素视觉轮廓“自然裁剪”。

box-shadow 参数顺序和常见写法

语法是 box-shadow: h-offset v-offset blur spread color;,后两项可省略。按钮常用柔和内陷或外凸效果:

  • box-shadow: 0 2px 4px rgba(0,0,0,0.2); —— 轻微下移+模糊,模拟自然光下按钮按压感
  • box-shadow: 0 0 0 2px #007bff; —— 无偏移无模糊,仅 2px 外发光(常用于焦点状态)
  • 避免写 box-shadow: 0 0 0 black;:第三项 blur 为 0 时阴影不可见,必须设正数或留空

border-radius 控制圆角程度与兼容性注意点

值可以是长度(pxrem)或百分比。按钮推荐用固定像素值,更可控:

  • border-radius: 4px; —— 通用中等圆角,适配大多数 UI 设计系统
  • border-radius: 20px; —— 较大圆角,适合现代卡片式按钮,但注意别超过按钮高度一半,否则顶部/底部变平
  • 旧版 Safari(iOS border-radius + overflow: hidden 组合有渲染 bug,如果按钮含图标或文字溢出,阴影可能被意外裁切

组合使用时的典型 CSS 写法

直接写在按钮选择器里即可,顺序无关,但建议把 border-radius 放前面,逻辑上先定义形状再加效果:

button {
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  background-color: #007bff;
  border: none;
  padding: 8px 16px;
}

特别注意:如果按钮有 borderborder-radius 会同时作用于边框和背景,但 box-shadow 始终从元素外边缘出发——所以加了边框后,阴影位置实际会向外偏移一个边框宽度。