CSS box-shadow 盒阴影完全指南:从参数顺序到多层立体投影

伪3D柱状图设计:用CSS 3D Transform提升数据可读性 3D柱状图作为数据可视化的重要形式,其核心价值在于强化深度感知与空间对比,而非单纯视觉炫技。从人眼视觉认知原理出发,基于CSS 3D Transform的‘伪3D’方案,通过透视(perspective)、旋转(rotateX/rotateZ)等属性,在不依赖WebGL的前提下,高效模拟立体纵深感,显著提升关键指标的0.8秒内识别效率。该技术兼顾无障碍访问、移动端手势兼容与60fps渲染性能,避免真3D渲染中常见的Z轴语义失真、context丢失与屏幕阅读器不可读等问题。适用于BI看板、运营监控、实时决策仪 阅读详情

在 CSS3 中,box-shadow 是为元素"加投影"最常用的属性。它不会占用布局空间(不影响盒模型),却能让卡片浮起来、让按钮被按下去、让边框像发光一样贴在元素四周。

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference/Properties/box-shadow

一、基本语法与参数顺序

完整单层写法:

box-shadow: <offset-x> <offset-y> <blur-radius> <spread-radius> <color> <inset>;

按"记忆口诀"排就是:

box-shadow: 水平偏移 垂直偏移 模糊半径 扩展半径 阴影颜色 inset/outset;
参数必选说明取值规则
offset-x✅水平偏移正值向右,负值向左
offset-y✅垂直偏移正值向下,负值向上(CSS 的 y 轴朝下)
blur-radius❌模糊半径默认 0(硬边),不能为负,越大越淡
spread-radius❌扩展半径默认 0,正值膨胀、负值收缩
color❌阴影颜色不写时多数浏览器取 color 属性值,Safari 可能透明,建议永远显式写​
inset❌内阴影开关不写为外阴影(outset),写上则阴影落在盒子内部

长度值只写两个 → 解析为 x/y 偏移;写三个 → 第三个是 blur;写四个 → 第四个是 spread。

二、每个参数到底在干什么

1. 水平 / 垂直偏移(必写)

决定"光从哪边来,影子落到哪边"。

  • 10px 10px → 右下
  • -10px 10px → 左下
  • 0 15px → 正下方(最像自然光照)

当 x、y 都为 0 时,阴影在正后方;此时若 blur/spread 非 0,会形成一圈均匀光晕。

2. 模糊半径 blur

不是"阴影变长",而是"边缘变柔"。

  • 0:硬边
  • 30px:很大很淡的一团
    规范没有规定精确模糊算法,但效果是"从完整阴影色过渡到完全透明"。

3. 扩展半径 spread(最容易被忽略)

  • 正值:阴影整体放大一圈,比如 0 0 0 5px 等价于一条同色描边
  • 负值:阴影收缩,常用来抵消 blur 向左右溢出的光,做"干净底部阴影":0 4px 6px -2px rgba(0,0,0,.1)

4. color

别用纯黑 #000,现实中的影子是半透明的。
推荐 rgba(0,0,0,0.15) ~ rgba(0,0,0,0.25),深色模式再单独调。

5. inset 内阴影

加了 inset,阴影画在:

  • 边框之内(即便 border 透明)
  • 背景之上
  • 内容之下

视觉上像"内容被压进盒子里",常用于 input 聚焦、按钮按下态。

三、多个阴影:逗号分隔,第一个在最上层

box-shadow: 0 2px 4px rgba(0,0,0,.1),
            0 4px 8px rgba(0,0,0,.05);

绘制规则:从后往前画,第一个阴影盖在最上面。
也就是说列表里写在前面的层更"靠近用户"。
多层阴影可以模拟真实环境光:底层大范围淡阴影 + 上层近距离深阴影。

注意:如果一组阴影里"有的 inset 有的不 inset",列表无法做过渡动画,会直接跳变。

四、和 border-radius 的关系

元素有圆角,阴影自动圆角;border-radius: 0 时阴影就是直角。
阴影本身不占布局空间,不会把旁边元素挤开——所以悬浮卡片记得自己留 margin,别让阴影盖到邻居。

五、对照你给出的案例

.box1:hover{
    box-shadow: -10px 10px 30px 5px blue outset;
}
  • 向左 10px、向下 10px
  • 模糊 30px、扩展 5px(比原盒大一圈)
  • 蓝色外阴影
  • outset 可写可不写,因为默认就是外阴影
.box2:hover{
    box-shadow: 0 15px 30px rgba(0,0,0,0.2);
}

这是典型的"卡片悬浮"写法:无水平偏移、向下 15px、大模糊、半透明黑,看起来像魅族/小米卡片悬浮效果。

六、几个新手易踩的坑

  1. inset 位置:放最前或最后都合法,但别塞在颜色前面当颜色用。box-shadow: 0 0 10px #000 inset ✅
  2. blur 写负:无效,浏览器按 0 处理。
  3. 不写 color:Firefox 用文字色,Chrome 偏透明,Safari 老版本直接不显示,统一显式声明最稳。
  4. 想要"只有底边阴影":靠负 spread 收住左右溢出,而不是只调 y。
  5. 动画性能:hover 过渡 box-shadow 没问题,但别在列表里混用 inset/非 inset,否则无法插值。

七、一句总结

box-shadow 的本质就是:用 x/y 决定落点,blur 决定虚实,spread 决定大小,color 决定浓度,inset 决定内外,逗号决定层数。把它当"光与体积"的工具,而不是"黑色描边"的替代品。

读者互动:

  • 如果你觉得文章有待改进,请在评论区留言,我会认真考虑每一条建议。
  • 如果觉得文章有帮助,欢迎点赞鼓励。
  • 想与我共同进步,欢迎关注我。
CSS 弹性盒布局:flex-wrap 换行与多行交叉轴对齐 默认情况下,弹性容器(flex container)会把所有子项(flex item)挤在一行里,哪怕空间不够也只会压缩子项,而不会换行。浏览器会依次把子项放进当前行,当剩余空间不足以容纳下一个子项的基础尺寸时,就开启新的一行。一旦允许换行,容器里就会出现多条「弹性行(flex line)」,此时交叉轴对齐的行为也会从「单行对齐」变成「多行对齐」,是默认值:当子项没有设置固定高度时,行会被拉伸,子项随之变高,看起来像是「撑满了容器」。上面这段代码中,每个子项固定 200px 宽,容器宽度决定每行能放几个。 阅读详情

相关推荐

【信息科学与工程学】计算机科学与自动化——第六十三篇 人机交互之前端交互参数知识库02

每个分支下又细分了四个关键方向,并按照“研究对象/焦点、基本问题、核心理论/概念、研究方法、应用/目标、前沿/发展”的框架进行阐述,严格遵循了六级编码体系。在最终整合时,应建立唯一的学科分类编码表(例如,用两位数字或“ART”、“MED”、“ECO”等字母前缀),并确保所有下级编码(尺度、层次、类别、子类、具体项)的逻辑一致性。此回答中的编码为示例,实际系统需据此调整。控制过程(前馈、同期、反馈)、全面质量管理(TQM)、平衡计分卡(BSC)定量(调查、实验)、定性(访谈、民族志)、混合方法、大数据。

weixin_49199313的博客 676

CSS3 box-shadow 效果大全(内阴影,外阴影,三边阴影,双边阴影,单边阴影,细线描边…)

CSS3 box-shadow属性详解 本文详细解析了CSS3的box-shadow属性,包括其语法结构、参数取值及各种阴影效果实现方法。box-shadow属性支持设置偏移量、模糊半径、扩展半径和颜色等参数,可创建内阴影、外阴影及多重阴影效果。文章通过多个代码示例展示了单边阴影、双边阴影、特殊形状阴影等实现方式,并配合图解说明参数作用原理。同时介绍了利用伪元素创造更复杂阴影效果的技巧,如逼真的投影、光晕等视觉效果。这些示例涵盖了从基础到高级的各种阴影应用场景,为前端开发者提供了实用的阴影效果实现参考。

油墨香^-^的博客 5万+

CSS立体效果与圆角设计实战详解

root {.card {这种高度集成的设计思路,正引领着现代 UI 向更可靠、更高效的方向演进 🚀。本文还有配套的精品资源,点击获取简介:CSS是网页设计中用于美化布局的核心技术,本教程深入讲解如何使用CSS实现圆角和立体视觉效果。通过属性可轻松创建各类圆角样式,而box-shadow则用于构建外置或内置阴影,增强元素的层次感与立体感。结合transform等变换属性,还能进一步提升界面的动态表现力。

weixin_28746213的博客 442

css 中box-shadow使用总结

box-shadow是 CSS 中的一个属性,用于在元素框的外部添加阴影效果。通过调整阴影的偏移量、模糊度、扩展距离和颜色,可以创建出各种独特的视觉效果。box-shadow是一个功能强大的 CSS 属性,通过调整其各个参数,可以轻松创建出各种独特的阴影效果。在网页设计中灵活运用阴影效果,可以使页面更加生动、立体和吸引人。**性能考量:**复杂的阴影效果,尤其是高模糊度,可能影响页面渲染性能,特别是对于动画或在性能较低的设备上。适度使用以保持性能。

qwguo 2661

CSS3 3D图片分割与拼接:打造前端视觉新体验

调优通常是一个迭代的过程,下面是一个典型的优化过程案例:分析问题:使用开发者工具发现页面在执行3D动画时帧率下降。定位瓶颈:通过性能分析确定是某一特定元素的过度3D变换导致性能问题。修改代码:优化CSS,减少该元素的3D变换复杂度。测试验证:重新运行性能分析,验证优化效果。总结经验:记录问题和解决方案,为将来遇到类似问题提供参考。通过对性能调优案例的分析与总结,我们可以不断积累经验,提升优化技能,实现更好的用户体验。

weixin_29717341的博客 528

【Excel VBA 编程】表格内自动生成进度条

在表格中生成进度条,进度条需要自适应单元格的宽度,根据不同进度区间变换颜色,并且按照进度数据大小显示其长短

wei1019的专栏 1519

CSS阴影深度解析:从box-shadow到text-shadow的进阶应用与性能优化

在网页设计与前端开发中,CSS阴影是构建视觉层次和立体感的核心技术。其原理是通过box-shadow和text-shadow属性,在二维平面上模拟三维空间的光影关系,控制光源、深度与材质感。这项技术的价值在于能够无声引导用户视线、建立清晰视觉层级,并暗示交互状态,直接影响用户体验与界面美观度。应用场景广泛,从Material Design的层叠感、苹果的毛玻璃效果到新拟态设计,都依赖阴影的精准运用。本文聚焦于box-shadow参数解析、多重阴影实现复杂效果、text-shadow创意表达,以及box-sh

weixin_33805743的博客 373

XMind文件解析黑科技:用Python实现版本自适应读取(兼容2010-2024)

本文深入探讨了如何利用Python实现XMind文件的版本自适应解析,兼容从2010到2024年的各版本。通过分析XMind文件作为ZIP压缩包的本质,文章提供了智能探测文件内部结构(JSON或XML)并构建健壮读取逻辑的完整方案,有效解决了版本兼容性难题,并演示了将解析数据转换为PlantUML等下游应用的实战案例。

weixin_29041767的博客 683

CSS阴影全解析:box-shadow、text-shadow与drop-shadow的区别与应用

在网页设计与前端开发中,CSS阴影是实现视觉层次和立体感的核心技术之一。其原理是通过模拟光线投射,为元素创建深度和空间感,从而提升用户界面的美观性和可读性。从技术价值看,合理使用阴影能有效引导用户注意力、区分交互状态,并增强整体的设计质感。常见的应用场景包括按钮悬停效果、卡片悬浮设计、文字特效以及不规则图形投影等。本文聚焦于CSS中三种主流的阴影实现方式:box-shadow适用于矩形盒子模型,text-shadow专为文字内容服务,而filter: drop-shadow()则能精准追踪元素的实际像素轮廓

weixin_33951761的博客 322

三轴云台稳定控制算法优化实战:从PID到模糊自适应

本文深入探讨了三轴云台稳定控制算法的优化实践,从经典PID控制到模糊自适应算法的进阶应用。通过实战案例和代码示例,详细解析了PID调参技巧、模糊控制实现及多传感器数据融合方法,帮助工程师在复杂环境下提升云台抗干扰能力和响应速度,特别适用于无人机航拍等场景。

green的博客 913

手把手教你用Python处理MAHNOB-HCI多模态数据集(含脑电EEG/眼动/视频数据同步实战)

本文详细介绍了如何使用Python处理MAHNOB-HCI多模态数据集,涵盖脑电(EEG)、眼动追踪和视频数据的同步解析与对齐。通过MNE-Python、pandas和OpenCV等工具,实现从BDF、TSV到XML格式的高效处理,解决时间轴对齐难题,助力情感计算与人机交互研究。

weixin_30998797的博客 370

AI智能生成CSS阴影代码:告别手动调参时代

输入"需要一个Material Design风格的卡片阴影",2秒就得到了标准化的8px模糊阴影代码,还能直接看到渲染效果。对于需要精细调整的场景,参数面板的实时联动非常实用,修改数值时能立即在预览区看到变化,比传统开发方式至少节省70%时间。这个工具最让我惊喜的是能理解设计术语,比如输入"弥散投影"会自动生成blur值较大的柔和阴影,而"硬边阴影"则会产生清晰的轮廓。爱的是它能瞬间提升界面层次感,恨的是每次调整参数都要反复修改数值、刷新页面,效率低下。点击"生成代码"获取可直接粘贴的CSS片段。

GoldEagle19的博客 950

【Inpho精品教程】Inpho简介、安装教程(附Inpho8安装包下载)

本文介绍Trimble旗下Inpho UASMaster航空摄影测量软件,涵盖其核心功能模块(如Match-AT、OrthoMaster、Summit Evolution等)及安装教程。文章详细说明了从安装到汉化破解的全过程,并提供Inpho 8.0.1安装包下载链接与提取码,适用于无人机摄影测量专业用户。

智慧空间实验室 1万+

text-shadow光效引擎:从CSS阴影到RGB灯带的底层原理

text-shadow并非简单的文字装饰属性,而是基于文字alpha位图的可编程光效合成系统。其核心原理涉及浏览器渲染管线中的轮廓生成、独立阴影层绘制、RGBA混合计算与多层叠加顺序,直接影响抗锯齿表现、亚像素定位精度及性能表现。技术价值体现在无需图像或JavaScript即可实现高保真描边、内阴影错觉、立体金属反光乃至RGB分色灯带动画,尤其契合前端工程中对轻量、高性能、跨端一致性的强需求。本文深入解析text-shadow与box-shadow的本质差异、移动端Retina屏适配雷区、多层叠加艺术,并结

wangqiaowqo的专栏 182

C# Modbus协议全解析 万字长文|RTU/TCP/UDP完整实战(寄存器映射+多从站组网+NModbus4工业级代码)

你做C#工业上位机开发,Modbus协议是绕不开的终极核心,没有之一!Modbus是由施耐德在1979年发布的工业级串行通信协议,经过40余年的发展,已经成为工业自动化领域的通用标准协议—— 小到温湿度传感器、智能电表、小型PLC,大到变频器、伺服驱动器、DCS集散控制系统,99%的工业设备都原生支持Modbus协议(RTU/TCP二选一,多数全支持)。很多开发者觉得Modbus「知识点杂、协议分支多、组网难」,本质是只掌握了零散的读写代码,没吃透。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1063

C#上位机+YOLO实战:从环境搭建到实现首个目标检测(零基础入门)

/ YOLOv8的类别名称(共80类,对应COCO数据集)// ONNX推理会话// YOLOv8的输入宽度// YOLOv8的输入高度本文从技术选型、环境搭建到代码实现,详细介绍了如何将C#上位机与YOLOv8结合,实现基础的目标检测功能。整个过程避开了常见的坑点,同时对核心原理和代码逻辑进行了详细解析,希望能帮助零基础的开发者快速入门。实际上,C#上位机+YOLO的组合在工业领域有非常广泛的应用,本文的案例只是一个起点。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 791

三步导出QQ空间历史说说:从登录到文件说明

如果你想在本地保存自己QQ空间里的历史说说和互动记录,可以用 Python 工具 GetQzonehistory。它通过扫码登录空间,把消息列表中的说说、转发、留言整理成 Excel 和网页文件,全程在本地完成,适合想备份空间数据的普通用户。 ## 先认识它:工具能导出什么 它能做的核心事情,是把空间消息列表拆成几份结构化档案。具体覆盖: - 全部消息列表 Excel - 自己发布的说说列表

gitblog_00553的博客 388

实测!Gemini+ChatGPT赋能学术写作:我的论文写作SOP(附提示词)

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。为什么ChatGPT逻辑清晰却写不长?为什么Gemini能深入分析但废话连篇?这其实是两种模型架构的本质差异,GPT系列擅长指令跟随和语言精炼,而Gemini原生支持超长上下文,适合深度文本生成。两者在深度生成与精炼表达上形成了天然互补。我们可以将它们组合起来使用发挥他们各自的特长。

智能AI让学术科研更容易 521

跟着 MDN 学CSS day_25:(高级区块效果)

本文介绍了三种高级CSS视觉效果:盒子阴影、滤镜和混合模式。盒子阴影通过box-shadow属性为元素添加立体感,支持多重阴影叠加和内阴影效果。CSS滤镜提供像素级处理,包括模糊、亮度调整等,并能识别元素形状创建自然投影。混合模式则实现图层间的颜色混合,分为background-blend-mode和mix-blend-mode两种,可创造丰富的纹理和交互效果。这些特性在现代浏览器中广泛支持,能显著提升页面视觉表现力。

2603_95532426的博客 487

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CSS魔法时刻:用clip-path和drop-shadow打造超酷按钮效果(附完整代码)

本文详细介绍了如何利用CSS的clip-path和drop-shadow属性,轻松实现自定义图形按钮与贴合边缘的阴影效果。通过实战案例,如六边形红包按钮和星形勋章,解析了这对组合的核心原理与使用技巧,并提供了完整的代码示例和性能优化建议,帮助前端开发者高效打造独特UI。

rgv234567的博客 217

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Figma矢量插画实战:从零绘制芙莉莲,掌握组件化数字绘画技法

矢量图形是数字绘画与UI设计的基石,它通过数学路径定义形状,具备无限缩放不失真的特性。其核心原理在于锚点、贝塞尔曲线与布尔运算的协同,确保了图形的精确与可编辑性。这一技术价值在于高效、可复用,并能无缝对接现代开发流程。在UI设计、图标制作、扁平化插画等场景中,矢量工具已成为标准选择。本文以热门动漫角色芙莉莲的绘制为例,深入拆解如何利用Figma的钢笔工具、渐变填充和图层效果等核心功能,进行角色造型与质感塑造。通过系统讲解组件化构建与样式管理,将绘画流程转化为可复用的设计系统,为插画师和UI设计师提供一套融合

weixin_30240349的博客 327

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

theme-machine 进阶实战:如何拆解 Charming 主题的模块化 SCSS 架构

对于刚接触前端工程化的新手来说,打开 theme-machine 这个 Bootstrap 4 主题合集仓库,最直观的感受就是:**每个主题都是一套独立、可复现的构建单元**。而其中 Charming 主题的 SCSS 源码,恰好把"变量、Mixin、工具类"这套分层思路拆得最干净,是理解 Bootstrap 主题二次开发的最佳入门样本。本文带你逐层拆解它的模块化 SCSS 架构,看完即可举一反三

gitblog_00838的博客 496

前端Canvas图像合成实战:实现FF14风格标题生成器

在前端开发中,Canvas API是实现浏览器端图形处理和图像合成的核心技术。它允许开发者通过JavaScript直接操作像素,绘制文本、形状和图像,并应用丰富的视觉效果。这项技术的核心价值在于,它能够将复杂的美术设计转化为可编程、可复用的代码逻辑,从而高效生成动态图形资产。在实际应用场景中,Canvas广泛用于数据可视化、在线图片编辑、游戏开发以及各类创意工具。本文聚焦于一个具体案例:如何利用Canvas的文本渲染、渐变填充、阴影效果以及图像合成能力,结合字体加载和Blob文件生成技术,构建一个能够生成具

weixin_34161032的博客 383

CSS 盒子模型与背景渐变、文字渐变实战

content(内容区):文字、图片等实际内容占据的区域padding(内边距):内容与边框之间的空白border(边框):盒子的边界margin(外边距):盒子与其他盒子之间的间距fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;margin 外边距border 边框padding 内边距content 内容区。

2601_96876853的博客 241

CSS 定位布局:固定定位与粘性定位详解

fixed相对视口定位,脱离文档流,适合始终固定的元素,如导航栏、悬浮按钮。sticky是相对定位与固定定位的结合,保留文档流占位,适合滚动吸附效果,如表头吸顶、目录跟随。两者都容易受到祖先元素transform和overflow的影响,排查问题时优先检查这两点。实际开发中,根据"是否需要始终固定"和"是否需要保留占位"来选择合适的方式。掌握这两种定位方式,能让你在实现吸顶导航、悬浮操作、滚动跟随等交互时更加得心应手。

2601_96876853的博客 530

CSS display 模式转换详解

display属性是 CSS 布局的基石。掌握blockinlineflexgrid等常见取值,并理解它们之间的转换规则,能够帮助我们更灵活地控制页面结构。在实际开发中,建议优先使用flex和grid完成布局,仅在必要时才通过display转换处理细节问题。

2601_96876853的博客 338
上一篇: CSS3 border-radius 圆角完全指南:从直角到圆形、半圆与椭圆
下一篇: CSS 背景渐变实战:linear-gradient 与 radial-gradient 一文通
思码梁田
博客等级 码龄1年 2粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值