当前位置:首页 > CSS

css制作倒影

2026-02-27 09:50:57CSS

使用 -webkit-box-reflect 属性

通过 -webkit-box-reflect 属性可以快速为元素创建倒影效果。该属性支持设置倒影方向、距离和遮罩效果。
示例代码:

.reflect {
    -webkit-box-reflect: below 10px linear-gradient(transparent, rgba(0, 0, 0, 0.3));
}
  • below 表示倒影在元素下方,还可使用 aboveleftright
  • 10px 控制倒影与元素的间距。
  • linear-gradient 用于渐变遮罩,避免倒影生硬。

注意:该属性为 WebKit 私有属性,兼容性有限(Chrome、Safari 等)。

使用伪元素模拟倒影

通过 ::after 伪元素结合 transformopacity 实现跨浏览器兼容的倒影:

.reflect {
    position: relative;
}
.reflect::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: inherit;
    transform: scaleY(-1);
    opacity: 0.3;
    filter: blur(2px);
}
  • transform: scaleY(-1) 垂直翻转元素。
  • opacityfilter: blur() 增强倒影的真实感。

SVG 滤镜实现动态倒影

通过 SVG 的 feGaussianBlurfeOffset 滤镜实现更复杂的倒影效果:

css制作倒影

<svg>
    <filter id="reflect">
        <feGaussianBlur stdDeviation="2" />
        <feOffset dy="10" />
        <feComponentTransfer>
            <feFuncA type="linear" slope="0.3" />
        </feComponentTransfer>
    </filter>
</svg>

CSS 中调用:

.reflect {
    filter: url(#reflect);
}

适用于需要动态控制倒影模糊或变形的场景。

css制作倒影

结合 mask-image 优化边缘

通过 CSS mask-image 控制倒影的渐隐效果:

.reflect::after {
    mask-image: linear-gradient(to bottom, transparent 10%, white 80%);
}

与伪元素方案结合使用,可替代 -webkit-box-reflect 的渐变遮罩功能。

总结

  • 优先使用 -webkit-box-reflect 实现简单倒影(需兼容性考虑)。
  • 伪元素方案兼容性最佳,适合大多数场景。
  • SVG 滤镜适用于复杂效果,但需额外 HTML 结构。

标签: 倒影css
分享给朋友:

相关文章

css 制作按钮

css 制作按钮

基础按钮样式 使用CSS创建一个基础按钮需要定义padding、background-color、border和border-radius等属性。以下是一个简单示例: .button { pad…

淘宝导航css制作

淘宝导航css制作

淘宝导航CSS制作 淘宝导航栏通常包含多个层级,包括主导航、子导航等。以下是实现类似淘宝导航栏的CSS制作方法。 基础HTML结构 <div class="nav-container">…

css制作相册

css制作相册

使用CSS Grid布局制作相册 CSS Grid布局非常适合创建响应式相册,能够灵活调整行列和间距。 .photo-gallery { display: grid; grid-templa…

旋转相册制作css

旋转相册制作css

旋转相册制作CSS 旋转相册通常通过CSS动画和3D变换实现,以下是一个完整的实现方法: 基础HTML结构 <div class="photo-album"> <div cla…

css制作表格

css制作表格

CSS 制作表格的方法 使用 CSS 可以灵活地创建和样式化表格,以下是几种常见的方法: 使用 HTML 表格标签结合 CSS 样式 通过 HTML 的 <table>、<tr&g…

css导航条制作

css导航条制作

水平导航条制作 使用display: inline-block或flexbox布局创建水平导航条。设置背景色、内边距和悬停效果增强交互性。 <nav> <ul class="h…