网站

CSS border-radius 属性

CSS box-shadow 属性

border-radius - CSS | MDN

引入

圆角和阴影是现代网页里很常见的视觉效果。

圆角可以让元素更柔和,阴影可以让元素产生层次感,常用于按钮、卡片、弹窗、头像等场景。

正文

定义

定义

border-radius 用于设置元素圆角,box-shadow 用于设置元素盒子阴影,text-shadow 用于设置文字阴影。

这几个属性不会改变元素内容本身,只是改变它们在页面中的显示效果。

圆角 border-radius

border-radius 用于控制元素边角的圆润程度。

.box {
  border-radius: 12px;
}

数值越大,圆角越明显。

单独设置四个角

.box {
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

也可以使用简写:

.box {
  border-radius: 12px 12px 0 0;
}

顺序是:左上、右上、右下、左下。

做圆形

如果元素宽高相同,使用 border-radius: 50%; 可以做圆形。

<img class="avatar" src="avatar.jpg" alt="头像">
.avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
}

常用于头像、圆形图标。

胶囊按钮

border-radius: 999px; 常用于做胶囊形状。

.btn {
  padding: 8px 18px;
  border-radius: 999px;
  background-color: #2563eb;
  color: white;
}

这种写法不用精确计算高度,比较方便。

盒子阴影 box-shadow

box-shadow 用于给元素添加阴影。

.card {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

常见结构:

box-shadow: 水平偏移 垂直偏移 模糊半径 颜色;

例如:

.panel {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

阴影扩展值

box-shadow 还可以加扩展半径。

.box {
  box-shadow: 0 8px 20px 4px rgba(0, 0, 0, 0.12);
}

结构可以理解为:

box-shadow: 水平偏移 垂直偏移 模糊半径 扩展半径 颜色;

内阴影

使用 inset 可以做内阴影。

.input {
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.08);
}

内阴影像是元素内部凹进去的效果。

文字阴影 text-shadow

text-shadow 用于给文字添加阴影。

.title {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

常见结构:

text-shadow: 水平偏移 垂直偏移 模糊半径 颜色;

文字阴影适合海报标题、图片上的文字,不适合普通正文大量使用。

例子

卡片效果

<div class="card">
  <h3>学习 CSS</h3>
  <p>圆角和阴影可以让卡片更有层次。</p>
</div>
.card {
  padding: 24px;
  border-radius: 16px;
  background-color: white;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

这个例子里,border-radius 控制圆角,box-shadow 控制阴影。

悬停加深阴影

.card {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
 
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

鼠标移上去时,卡片会轻微上浮,阴影变深。

特点

  • border-radius 用于设置圆角
  • border-radius: 50%; 常用于做圆形
  • border-radius: 999px; 常用于做胶囊按钮
  • box-shadow 用于设置盒子阴影
  • text-shadow 用于设置文字阴影
  • 阴影不要太重,否则页面会显得脏
  • 圆角和阴影常和 transitiontransform 搭配使用

理解

圆角主要改变元素边缘的感觉,阴影主要制造元素之间的层次。

可以把圆角理解为“让盒子变柔和”,把阴影理解为“让盒子从背景里浮出来”。

实际写页面时,圆角和阴影要统一,不要每个地方都随便写不同的值。

引出

理解圆角和阴影之后,可以继续学习 CSS 过渡CSS 2D 和 3D 转换,做更自然的悬停交互效果。