答案:CSS通过box-shadow和text-shadow属性实现阴影效果。box-shadow用于元素盒子,支持偏移、模糊、扩展、颜色及内阴影;text-shadow用于文本,仅支持偏移、模糊和颜色。两者均可设置多层阴影,常结合rgba控制透明度以增强视觉层次与真实感。

在CSS中添加阴影效果,主要通过
box-shadow
text-shadow
要为你的网页元素增添阴影,我们主要依赖两个核心的CSS属性:
box-shadow
text-shadow
1. box-shadow
box-shadow
立即学习“前端免费学习笔记(深入)”;
box-shadow: offset-x offset-y blur-radius spread-radius color;
offset-x
offset-y
blur-radius
spread-radius
color
#000
rgba(0,0,0,0.5)
你还可以添加
inset
box-shadow: inset offset-x offset-y blur-radius spread-radius color;
示例:
.my-box {
width: 200px;
height: 100px;
background-color: #f0f0f0;
margin: 50px;
/* 一个简单的黑色阴影,向右下偏移5px,模糊8px */
box-shadow: 5px 5px 8px rgba(0, 0, 0, 0.3);
/* 也可以是更复杂的,比如一个轻微的内阴影 */
/* box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.2); */
}2. text-shadow
text-shadow
box-shadow
text-shadow: offset-x offset-y blur-radius color;
offset-x
offset-y
blur-radius
color
示例:
.my-text {
font-size: 3em;
color: #333;
/* 给文本添加一个轻微的灰色阴影,向右下偏移2px,模糊3px */
text-shadow: 2px 2px 3px rgba(100, 100, 100, 0.5);
/* 也可以是多层阴影,比如一个描边效果 */
/* text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff; */
}在实际项目中,我个人发现,合理运用
rgba
添加内阴影(
inset
box-shadow
添加内阴影: 要创建一个内阴影,你只需要在
box-shadow
inset
.button-pressed {
padding: 10px 20px;
background-color: #eee;
border: 1px solid #ccc;
border-radius: 5px;
/* 创建一个轻微的内阴影,模拟按钮被按下的效果 */
box-shadow: inset 1px 1px 3px rgba(0, 0, 0, 0.2);
cursor: pointer;
}我发现,在模拟用户界面(UI)中的交互状态,比如按钮的
active
inset
添加多层阴影:
box-shadow
text-shadow
.card-with-multiple-shadows {
width: 250px;
height: 150px;
background-color: white;
margin: 30px;
border-radius: 8px;
/* 声明两层阴影:一层较远的、模糊的灰色阴影,另一层较近的、更实的黑色阴影 */
box-shadow:
0 10px 20px rgba(0, 0, 0, 0.19), /* 第一层:较远的、分散的阴影 */
0 6px 6px rgba(0, 0, 0, 0.23); /* 第二层:较近的、更清晰的阴影 */
}
.heading-with-outline {
font-size: 4em;
font-weight: bold;
color: #007bff;
/* 通过多层text-shadow模拟描边效果,然后加一层模糊的阴影 */
text-shadow:
-2px -2px 0 #fff, /* 上左描边 */
2px -2px 0 #fff, /* 上右描边 */
-2px 2px 0 #fff, /* 下左描边 */
2px 2px 0 #fff, /* 下右描边 */
4px 4px 6px rgba(0, 0, 0, 0.3); /* 最后一层:实际的模糊阴影 */
}处理多层阴影时,我通常会把最“远”或者最“模糊”的阴影放在最前面,这样它就像一个大的背景光晕,然后把更具体、更接近元素的阴影放在后面。这种叠加方式能创造出更丰富的深度感,而不是简单地堆叠。
在
box-shadow
blur-radius
spread-radius
模糊半径(blur-radius
px
0
.box-blur {
/* 阴影向右下偏移,但边缘非常模糊 */
box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.4); /* 模糊半径20px */
}我个人觉得,模糊半径是创造“柔和”和“自然”阴影的关键。太小的模糊半径会让阴影显得生硬,而适当的模糊能让元素更好地融入背景,或者模拟环境光的效果。
扩展半径(spread-radius
px
0
.box-spread {
/* 阴影向右下偏移,并向外扩展5px,边缘清晰 */
box-shadow: 5px 5px 0 5px rgba(0, 0, 0, 0.4); /* 扩展半径5px */
}有时候,我需要一个比元素本身稍微大一点,但边缘清晰的阴影来做一些特殊效果,比如一个光晕或者边框式的阴影,这时候扩展半径就派上用场了。它和模糊半径通常是结合起来使用的,比如一个稍微扩展一点,然后加上一定的模糊,就能得到一个既有一定体积感又柔和的阴影。
总结区别:
你可以这样记忆:
blur
spread
text-shadow
box-shadow
1. 作用对象不同:
text-shadow
box-shadow
div
button
img
2. 属性参数不同:
text-shadow
offset-x
offset-y
blur-radius
color
spread-radius
inset
box-shadow
offset-x
offset-y
blur-radius
spread-radius
color
inset
3. 视觉效果和应用场景:
text-shadow
h1 {
color: #fff;
background-color: #333;
padding: 10px;
/* 文本白色,加上黑色阴影,在深色背景下更清晰 */
text-shadow: 2px 2px 4px rgba(0,0,0,0.6);
}我个人在处理文字设计时,如果希望文字有立体感或者在复杂背景下更显眼,
text-shadow
box-shadow
:hover
:active
inset
.card {
background-color: white;
border-radius: 8px;
padding: 20px;
margin: 20px;
/* 让卡片看起来像是浮在页面上 */
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.card:hover {
/* 鼠标悬停时阴影加深,模拟卡片“抬起” */
box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}对于整个UI组件的视觉呈现,
box-shadow
简单来说,
text-shadow
box-shadow
以上就是CSS阴影效果怎么添加_CSS阴影属性使用教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号