

新闻资讯
行业动态box-shadow不可见的三大主因是颜色与背景无对比、元素无渲染尺寸、父容器overflow:hidden裁剪;需检查颜色值、设置宽高或背景、调整父容器overflow或内边距。
常见现象是设置了 box-shadow 却完全看不到阴影,尤其在浅色背景上。最常被忽略的是颜色值本身——如果写成 box-shadow: 0 0 10px #fff;,白色阴影在白色背景上自然不可见;同理,rgba(0,0,0,0) 或 transparent 也会导致“阴影存在但不可见”。
rgba(0,0,0,0.5) 快速验证#fff、#000 等不带透明度的纯色,除非你明确知道背景色box-shadow 是作用在元素**渲染盒(rendering box)**上的,如果元素宽高为 0、没有内容、且 background 和 border 都为空,它就没有任何可投影的区域,阴影自然不会出现。
background: red; 和 width: 100px; height: 100px; 看是否立刻出现阴影)必须显式设置尺寸,或用 min-height/padding 建立盒模型display: inline 的元素默认不响应 box-shadow 的宽高逻辑,改用 inline-block 或 block
这是最隐蔽也最高频的问题:父级设置了 overflow: hidden(尤其是卡片、模态框、轮播容器),而阴影超出其边界,直接被裁掉。
overflow: visible !important; 看阴影是否恢复transform: translateZ(0) 或 will-change: transform 触发新层叠上下文,有时能绕过裁剪(但非万能)padding)或调整子元素 margin,为阴影留出空间阴影属于元素自身的绘制层,但如果该元素被其他元素用 z-index 盖住,或者它自己触发了层叠上下文(如 opacity 、transform、filter),可能导致阴影被压在底层甚至被截断。
立即学习“前端免费学习笔记(深入)”;
z-index 且定位重叠opacity: 0.99 却以为只是“几乎不透明”)Paint flashing,观察阴影是否真的被绘制出来/* 快速诊断模板:复制到元素样式中逐项验证 */ box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important; background: #f8f9fa !important; width: 200px !important; height: 100px !important; position: relative !important; overflow: visible !important;
真正卡住的时候,往往不是语法写错,而是阴影画出来了,却被别的规则悄悄吃掉了。多看一眼 computed 样式里的 box-shadow 是否被覆盖,再点开“Layout”看元素实际尺寸和父容器 overflow 状态,比反复调参数更快。