使用 inset 关键字可将 box-shadow 设置为内阴影,语法为 box-shadow: inset h-offset v-offset blur spread color;例如 .inner-shadow-box { box-shadow: inset 2px 2px 5px rgba(0,0,0,0.3); } 可创建右下方向灰色内阴影,常用于文本框聚焦、按钮按下状态或卡片层次感设计;支持多层阴影,如 box-shadow: inset 0 2px 4px rgba(0,0,0,0.2), inset 0 -2px 4px rgba(0,0,0,0.1) 实现上下立体效果。
要使用 css 设置元素的 box-shadow 为内阴影,只需在 box-shadow
属性中加入 inset 关键字即可。默认情况下,box-shadow 是外阴影,添加 inset
后会将阴影渲染在元素内部。
语法格式
box-shadow: inset h-offset v-offset blur spread color;
- inset:可选关键字,表示阴影在元素内部
- h-offset:水平偏移值,正数向右,负数向左
- v-offset:垂直偏移值,正数向下,负数向上
- blur:模糊半径,值越大越模糊
- spread:扩展半径,正数扩大阴影,负数缩小
- color:阴影颜色,可选,不设置时浏览器自动选择(通常是黑色或透明黑)
基本使用示例
下面是一个创建灰色内阴影的例子:
.inner-shadow-box {
width: 200px;
height: 100px;
background: #fff;
border: 1px solid #ccc;
box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.3);
}
这个效果会让元素内部出现一个轻微右下方向的阴影,常用于凹陷式按钮或输入框聚焦效果。
常见应用场景
- 文本框聚焦时的内凹效果
- 模拟按钮按下状态
- 卡片内容区域的层次感增强
- 自定义输入框或 textarea 的视觉深度
多层内阴影
你还可以设置多个内阴影,用逗号分隔:
立即学习“前端免费学习笔记(深入)”;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.2),
inset 0 -2px 4px rgba(0,0,0,0.1);
这样可以创建上下都有阴影的效果,使元素看起来更立体。
基本上就这些,只要加上 inset 就能实现内阴影,不复杂但容易忽略。