当前位置:首页 > CSS

css制作倒影

2026-04-01 09:36:50CSS

使用 -webkit-box-reflect 属性

-webkit-box-reflect 是 WebKit 浏览器(如 Chrome、Safari)提供的专有属性,可直接为元素生成倒影。语法如下:

.element {
  -webkit-box-reflect: below 10px linear-gradient(transparent, rgba(0, 0, 0, 0.3));
}
  • 参数说明
    • below:倒影方向(可选 above/below/left/right)。
    • 10px:倒影与元素的间距。
    • linear-gradient:可选的遮罩效果,控制倒影渐变透明度。

通过伪元素模拟倒影

通用方案,适用于所有浏览器。利用 ::after 伪元素和 CSS 变换实现:

.element {
  position: relative;
}
.element::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  transform: scaleY(-1) translateY(5px);
  opacity: 0.5;
  filter: blur(2px);
}
  • 关键点
    • transform: scaleY(-1) 垂直翻转元素。
    • filter: blur() 增加模糊效果模拟真实倒影。
    • opacity 调整透明度增强层次感。

结合 SVG 滤镜

通过 SVG 创建复杂倒影效果(如波纹扭曲):

<svg height="0" width="0">
  <filter id="reflect">
    <feGaussianBlur stdDeviation="1" />
    <feComponentTransfer>
      <feFuncA type="linear" slope="0.5" />
    </feComponentTransfer>
  </filter>
</svg>

<style>
.element {
  filter: url(#reflect);
  transform: scaleY(-1);
}
</style>

动态倒影与交互

通过 CSS 变量实现悬停效果增强:

css制作倒影

.element {
  --reflect-opacity: 0.3;
  --reflect-blur: 2px;
  -webkit-box-reflect: below 0px linear-gradient(transparent, rgba(0,0,0,var(--reflect-opacity)));
  filter: blur(var(--reflect-blur));
  transition: all 0.3s;
}
.element:hover {
  --reflect-opacity: 0.6;
  --reflect-blur: 4px;
}

注意事项

  • -webkit-box-reflect 的浏览器兼容性有限,需测试目标环境。
  • 伪元素方案需确保父容器有足够空间展示倒影。
  • 性能敏感场景慎用 filter: blur(),可能引发重绘开销。

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

相关文章

css制作时钟

css制作时钟

CSS 制作时钟的方法 使用纯 CSS 和少量 JavaScript 可以制作一个动态时钟。以下是实现步骤: HTML 结构 <div class="clock"> <div…

css表单制作

css表单制作

表单基础结构 使用HTML创建表单容器,包含<form>标签及输入字段。表单通常需要<input>、<label>、<textarea>等元素。…

纯css制作下拉菜单

纯css制作下拉菜单

使用纯CSS制作下拉菜单 HTML结构需要嵌套列表,外层为触发元素,内层为下拉内容。以下是一个基础结构示例: <div class="dropdown"> <button cl…

css制作半圆

css制作半圆

使用 border-radius 制作半圆 通过设置 border-radius 属性可以轻松创建半圆。将元素的宽度设置为高度的两倍,并设置 border-radius 为 50% 以形成半圆形。…

css立体相册制作

css立体相册制作

CSS立体相册制作方法 通过CSS的3D变换和动画效果,可以创建具有立体感的相册展示。以下是实现步骤和代码示例: HTML结构 <div class="photo-album">…

css如何制作div

css如何制作div

使用 CSS 创建 div 元素 在 HTML 中,div 是一个通用的容器元素,通常用于布局和样式化。通过 CSS 可以控制其外观和行为。 基本 div 结构 在 HTML 文件中定义一个 div…