CSS水面倒影的效果
时间: 2024-11-17 17:29:21 浏览: 10
CSS创建水面倒影效果通常通过CSS3的`transform: translateZ(0)`和伪元素`:before`或`:after`结合使用来模拟。以下是一个简单的示例:
```css
.container {
position: relative;
overflow: hidden; /* 隐藏超出内容 */
}
.container::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5); /* 水面颜色和透明度 */
transform: scale(1) translateY(-100%) translateX(0);
z-index: -1;
pointer-events: none; /* 确保点击穿透到实际内容 */
}
/* 如果需要倒影有动态效果,可以添加动画 */
@keyframes ripple {
from {
transform: scale(0.1);
opacity: 0;
}
to {
transform: scale(1);
opacity: 0.2;
}
}
.container:hover::before {
animation: ripple 1s ease-out infinite; /* 当鼠标悬停时触发倒影动画 */
}
```
在这个例子中,`.container`容器设置了`position: relative`以便在其内部应用绝对定位。`:before`伪元素模拟了水面上的反射,并通过`transform`属性调整位置和缩放,使其看起来像是从下向上拉伸。当鼠标悬停时,还可以添加动画效果。
阅读全文