2023-11-16 22:32:45
CSS 的box-shadow属性通过指定水平偏移、垂直偏移、模糊半径、扩展半径、颜色及阴影类型(内/外)实现元素阴影效果,可增强立体感且不影响布局。
一、语法与参数说明h-offset(必填):水平偏移值,正数向右,负数向左。
v-offset(必填):垂直偏移值,正数向下,负数向上。
blur(可选):模糊半径,值越大阴影越模糊(默认0)。
spread(可选):扩展半径,正数扩大阴影范围,负数缩小(默认0)。
color(可选):阴影颜色,支持任何CSS颜色格式(如rgba(0,0,0,0.3))。
inset(可选):添加后阴影变为内阴影(默认外阴影)。
基础外阴影:
box-shadow: 2px 2px 5px rgba(0,0,0,0.3);水平偏移2px,垂直偏移2px,模糊半径5px,半透明黑色阴影。
柔和长投影:
box-shadow: 0 4px 10px rgba(0,0,0,0.1);无水平偏移,垂直偏移4px,模糊半径10px,浅色阴影营造柔和感。
内阴影效果:
box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);添加inset关键词,阴影在元素内部呈现凹陷效果。
多重阴影:
box-shadow: 0 0 10px red, 0 0 20px blue;用逗号分隔多组参数,实现红色和蓝色叠加的阴影效果。
颜色选择:
推荐使用rgba颜色控制透明度(如rgba(0,0,0,0.3)),使阴影更自然。
避免纯黑色(#000)的生硬感,通过透明度融合背景。
模糊与扩展值:
模糊半径(blur)不宜过大(如超过20px),否则会导致页面“发虚”。
扩展半径(spread)正数可扩大阴影范围,负数可收缩(如-2px)。
性能优化:
移动端避免过多复杂阴影(如多重阴影或大模糊值),可能影响渲染流畅度。
静态页面可适当使用,动态交互场景需简化效果。
与圆角搭配:
box-shadow会自动适配border-radius的圆角形状,无需额外调整。
示例:.element { border-radius: 10px; box-shadow: 2px 2px 5px rgba(0,0,0,0.3);}
优势:
不占用文档流空间,不影响布局。
兼容性良好,支持所有现代浏览器。
无需额外HTML元素即可实现立体效果。
注意事项:
阴影过重可能分散用户对内容的注意力,需适度使用。
打印时部分浏览器可能忽略阴影效果,需测试实际场景。
合理运用box-shadow可显著提升UI质感,通过调整参数实现从细微层次到夸张视觉效果的灵活控制。