当前位置:首页 > CSS

css制作倒影

2026-01-28 06:48:11CSS

使用 -webkit-box-reflect 属性

通过 CSS 的 -webkit-box-reflect 属性可以快速为元素创建倒影效果。该属性目前仅在 WebKit 内核浏览器(如 Chrome、Safari)中支持。

.reflect {
    -webkit-box-reflect: below 10px linear-gradient(transparent, rgba(0,0,0,0.3));
}

below 10px 表示倒影位于元素下方,距离为 10px。linear-gradient 用于控制倒影的渐变透明度,避免生硬的边缘。

使用伪元素模拟倒影

对于不支持 -webkit-box-reflect 的浏览器,可以通过伪元素和 CSS 变换模拟倒影效果。

.reflect {
    position: relative;
}
.reflect::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(transparent, rgba(0,0,0,0.3));
    transform: scaleY(-1);
    opacity: 0.5;
}

通过 transform: scaleY(-1) 垂直翻转伪元素,再通过渐变和透明度调整倒影的视觉效果。

结合 SVG 滤镜

SVG 滤镜可以实现更复杂的倒影效果,包括模糊、扭曲等高级效果。

<svg style="display: none;">
    <filter id="reflection">
        <feGaussianBlur stdDeviation="2"/>
        <feComponentTransfer>
            <feFuncA type="linear" slope="0.5"/>
        </feComponentTransfer>
    </filter>
</svg>
.reflect {
    filter: url(#reflection);
}

倒影动画效果

通过 CSS 动画或过渡,可以让倒影产生动态效果,如波纹或渐变动画。

.reflect:hover::after {
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

多浏览器兼容方案

结合 -webkit-box-reflect 和伪元素方法,确保在大多数浏览器中都能显示倒影效果。

css制作倒影

.reflect {
    position: relative;
}
.reflect::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(transparent, rgba(0,0,0,0.3));
    transform: scaleY(-1);
    opacity: 0.5;
}
@supports (-webkit-box-reflect: below) {
    .reflect::after {
        display: none;
    }
    .reflect {
        -webkit-box-reflect: below 10px linear-gradient(transparent, rgba(0,0,0,0.3));
    }
}

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

相关文章

react 如何引入css

react 如何引入css

在 React 中引入 CSS 的方法 React 提供了多种引入 CSS 的方式,可以根据项目需求选择合适的方法。以下是常见的几种方式: 内联样式 内联样式直接在组件中通过 style 属性定义,…

css立体相册制作

css立体相册制作

制作CSS立体相册 使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。 HTML结构 <div class="photo-album"> <di…

css制作角标

css制作角标

使用伪元素创建角标 通过CSS的伪元素(如::before或::after)可以轻松实现角标效果。以下是一个示例代码: .element { position: relative; disp…

css制作卷边效果

css制作卷边效果

使用伪元素和渐变实现卷边效果 通过CSS伪元素和线性渐变可以模拟纸张卷边的视觉效果。这种方法不需要额外元素,仅通过::before或::after伪元素实现。 .element { positi…

css 边框制作

css 边框制作

基础边框设置 使用 border 属性可快速设置边框样式、宽度和颜色: .element { border: 1px solid #000; /* 宽度 | 样式 | 颜色 */ } 样式选…

css 制作按钮

css 制作按钮

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