0

0

CSS布局如何实现带有凹陷感觉的内部嵌块

P粉602998670

P粉602998670

发布时间:2026-03-18 07:05:23

|

646人浏览过

|

来源于php中文网

原创

实现凹陷效果的关键是box-shadow叠加两条inset阴影:浅色亮边(如inset 0 1px 1px #fff)和深色暗边(如inset 0 -1px 1px rgba(0,0,0,0.15)),偏移量±1px、模糊值≤2px,颜色需匹配背景以保自然立体感。

css布局如何实现带有凹陷感觉的内部嵌块

box-shadow 实现凹陷效果的关键参数组合

凹陷感不是靠背景色或边框“画”出来的,而是用 box-shadow 的内阴影(inset)配合明暗对比模拟视觉深度。核心在于:必须同时有浅色亮边 + 深色暗边,且偏移量要小(通常 ±1px),模糊值不宜超过 2px,否则会发虚、失真。

常见错误是只加一条 inset 阴影,比如 box-shadow: inset 0 2px 4px rgba(0,0,0,0.2) —— 这只会压出一个“脏边”,没有立体感。

  • 正确做法是叠加两条 inset 阴影:一条浅色向上/向左提亮边缘,一条深色向下/向右压暗边缘
  • 例如:box-shadow: inset 0 1px 1px #fff, inset 0 -1px 1px rgba(0,0,0,0.15)
  • 注意颜色选择:亮边用接近背景的浅色(甚至纯白),暗边用比内容区略深的灰,避免过重导致像“裂开”
  • 如果父容器有背景渐变或图片,亮边建议改用 rgba(255,255,255,0.3) 而非纯白,否则会突兀

伪元素 ::before/::after 能否替代 box-shadow?

能,但没必要。有人用绝对定位的伪元素盖一层半透明白色+一层半透黑来模拟凹陷,逻辑上可行,但引入了额外 DOM 层级、z-index 管理和定位计算,响应式下容易错位。

更实际的问题是:伪元素方案在缩放(transform: scale())或高 DPI 屏幕下,边缘容易出现亚像素渲染模糊,而 box-shadow 是浏览器原生合成,抗锯齿稳定。

立即学习前端免费学习笔记(深入)”;

Beago
Beago

零一万物推出的AI搜索工具

下载
  • 仅当需要动态控制“凹陷方向”(比如点击时从凹变凸)且 CSS 变量无法满足时,才考虑伪元素 + transition
  • 绝大多数静态嵌块场景,box-shadow 更轻量、更可靠
  • 别忘了加 border: none 或统一 border 样式——有默认边框时,阴影会被遮挡或打架

移动端 Safari 下凹陷效果发虚或消失?

这是 WebKit 的已知渲染差异:iOS 15+ 对小尺寸 inset 阴影做了优化裁剪,模糊值 ≤1px 且偏移为 0 时可能直接不绘制。不是 bug,是性能策略。

解决方式很具体:把原本的 inset 0 1px 0 #ccc 改成 inset 0 1px 0.5px #ccc,哪怕只加 0.5px 模糊,就能强制触发渲染。

  • 不要用 0.1px0.01px —— Safari 会四舍五入归零
  • 安卓 Chrome 和桌面端无此问题,所以这个修复只建议加在媒体查询里:@supports (-webkit-appearance:none) { ... }
  • 如果嵌块本身有圆角(border-radius),确保 box-shadow 的模糊值 ≤ 圆角值的一半,否则阴影会“溢出”到圆角外,破坏凹陷感

凹陷嵌块与 focus-visible 边框冲突怎么办?

当嵌块可聚焦(比如 button 或带 tabindexdiv),系统默认的焦点环会盖住凹陷阴影,视觉上变成“先凹再凸”,体验割裂。

不能直接 outline: none —— 这违反可访问性。正确解法是重绘焦点样式,复用同一套凹陷逻辑,但反向强化:

  • :focus-visible 单独定义焦点状态
  • 把原凹陷阴影替换成更粗的亮边 + 暗边,例如:box-shadow: inset 0 2px 2px #fff, inset 0 -2px 2px rgba(0,0,0,0.2)
  • 或者加一层外部高对比度轮廓:outline: 2px solid #0066cc; outline-offset: 2px;,位置刚好卡在凹陷边缘之外
  • 切记测试键盘 Tab 导航 —— 很多开发者只看鼠标点击效果,忽略了焦点路径是否清晰
凹陷的本质是欺骗眼睛,所以所有参数都得围着“微小但可感知的明暗差”打转。调得太狠就变浮雕,太弱就看不出,中间那 0.5px 模糊、1px 偏移、15% 透明度的区间,才是手感最稳的地方。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1088

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

852

2023.11.06

DOM是什么意思
DOM是什么意思

dom的英文全称是documentobjectmodel,表示文件对象模型,是w3c组织推荐的处理可扩展置标语言的标准编程接口;dom是html文档的内存中对象表示,它提供了使用javascript与网页交互的方式。想了解更多的相关内容,可以阅读本专题下面的文章。

4395

2024.08.14

html边框设置教程
html边框设置教程

本教程将带你全面掌握HTML/CSS边框设置,从基础的border属性讲起,涵盖所有边框样式、圆角设置及高级技巧,帮助你快速上手实现各种边框效果。

44

2025.09.02

css3transition
css3transition

css3transition属性用于指定如何从一个CSS样式过渡到另一个CSS样式,本专题为大家提供transition相关的文章、相关下载和相关课程,大家可以免费体验。

261

2023.06.27

抖漫入口地址合集
抖漫入口地址合集

本专题整合了抖漫入口地址相关合集,阅读专题下面的文章了解更多详细地址。

1

2026.03.17

多环境下的 Nginx 安装、结构与运维实战
多环境下的 Nginx 安装、结构与运维实战

本专题聚焦多环境下Nginx实战,详解开发、测试及生产环境的差异化安装策略与目录结构规划。深入剖析配置模块化设计、灰度发布流程及跨环境同步机制。结合监控告警、故障排查与自动化运维工具,提供全链路管理方案,助力团队构建灵活、高可用的Nginx服务体系,从容应对复杂业务场景挑战。

0

2026.03.17

PS 批量添加图片
PS 批量添加图片

本专题整合了PS批量添加图片教程合集,阅读专题下面的文章了解更多详细操作。

0

2026.03.17

Nginx 基础架构:从安装配置到系统化管理
Nginx 基础架构:从安装配置到系统化管理

本专题深入解析Nginx基础架构,涵盖从源码编译与包管理安装,到核心配置文件优化及虚拟主机部署。进一步探讨日志轮转、性能调优、高可用集群构建及自动化运维策略,助力管理员实现从单一服务搭建到企业级系统化管理的全面升级,确保Web服务高效、稳定运行。

1

2026.03.17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.0万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.7万人学习

CSS教程
CSS教程

共754课时 | 44.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号