如何实现与Everbowl官网相同的CSS样式效果
Everbowl 风格图片分隔+3D质感板块CSS实现方案
核心效果拆解:
- 跨板块的异形图片作为视觉分隔,打破普通矩形板块的生硬边界
- 柔和的裸眼3D质感,靠层级差、投影、微变换实现,无额外3D模型依赖
- 滚动视差配合,强化页面纵深感
1. 全局基础配置
先给页面加3D透视基础,关闭横向溢出,为后续效果做支撑:
html { scroll-behavior: smooth; } body { margin: 0; padding: 0; /* 透视值控制3D强度,1200-1500px是官网用的柔和透视区间,值越小畸变越明显 */ perspective: 1400px; overflow-x: hidden; }
2. 核心分隔图片效果实现
分隔图采用绝对定位卡在两个板块的接缝处,通过裁剪、变换、阴影实现悬浮3D效果:
/* 通用内容板块容器 */ .section { position: relative; width: 100%; min-height: 80vh; padding: 6rem 2rem; box-sizing: border-box; z-index: 1; } /* 板块接缝处的分隔装饰图 */ .section-divider-img { position: absolute; /* 定位到板块底部,跨接下一个板块 */ bottom: -8vw; left: 0; width: 100%; height: auto; z-index: 10; /* 裁剪出异形边界,替代生硬矩形边 */ clip-path: polygon(0 15%, 100% 0, 100% 85%, 0 100%); /* 3D微变换:绕X轴小角度旋转+Z轴前移,模拟浮起效果 */ transform: rotateX(8deg) translateZ(30px); /* 多层投影模拟真实光影,越外层的阴影越淡、扩散范围越大 */ filter: drop-shadow(0 12px 18px rgba(0,0,0,0.15)) drop-shadow(0 30px 40px rgba(0,0,0,0.08)); /* 禁用图片交互,避免遮挡下方板块的按钮、链接 */ user-select: none; pointer-events: none; } /* 偶数板块分隔图反向倾斜,制造错落感 */ .section:nth-child(even) .section-divider-img { clip-path: polygon(0 0, 100% 15%, 100% 100%, 0 85%); transform: rotateX(-6deg) translateZ(25px); }
注意:如果要完全匹配官网的弧形自然边缘,不要手写直线段polygon,可以把分隔素材的透明轮廓导出为SVG路径,直接复制path值填入
clip-path: path()即可,边缘精度和官网完全一致。
3. 板块3D质感与视差强化
通过Z轴分层拉开内容、背景、分隔图的纵深层次,加纯CSS滚动视差:
/* 板块内容层,Z轴前移和分隔图形成层次差 */ .section-content { position: relative; z-index: 5; max-width: 1200px; margin: 0 auto; transform: translateZ(15px); } /* 板块背景层,Z轴后移+轻微放大,模拟景深后退效果 */ .section-bg { position: absolute; inset: 0; z-index: 0; transform: translateZ(-20px) scale(1.05); /* 顶部加微弱径向高光,模拟顶光照射的立体质感 */ background: radial-gradient(circle at 50% 0%, rgba(255,255,255,0.2) 0%, transparent 60%); } /* 现代浏览器支持CSS滚动时间线,实现无JS视差 */ @supports (animation-timeline: scroll()) { .section-divider-img { animation: divider-parallax linear forwards; animation-timeline: scroll(); animation-range: entry 10% exit 90%; } @keyframes divider-parallax { from { transform: rotateX(8deg) translateZ(30px) translateY(0); } to { transform: rotateX(8deg) translateZ(30px) translateY(60px); } } }
实现避坑点
- 不要用
border-radius做分隔图边缘,圆角会出现边缘模糊溢出,clip-path是唯一能实现锐利自然异形边的方案 - 分隔图的偏移量用
vw相对单位做响应式适配,不同屏幕尺寸下不会出现接缝露白 - 不要给父容器加
overflow: hidden,会切断3D变换和阴影效果,破坏立体质感 - 多层投影不要用
box-shadow,box-shadow是基于元素矩形边界生成的,用filter: drop-shadow()才会贴合图片的透明轮廓生成真实投影
内容的提问来源于stack exchange,提问作者Renan Mougenot
相关产品推荐
相关产品推荐

