当前位置:首页 > CSS

css制作波浪

2026-02-27 07:11:48CSS

CSS制作波浪效果

使用CSS可以创建多种波浪效果,常见方法包括使用SVG、CSS渐变和动画。以下是几种实现方式:

使用SVG和CSS动画

将SVG波浪路径嵌入HTML,通过CSS控制动画:

<div class="wave-container">
  <svg viewBox="0 0 1200 120" preserveAspectRatio="none">
    <path d="M0,0V46.29c47.79,22.2,103.59,32.17,158,28,70.36-5.37,136.33-33.31,206.8-37.5C438.64,32.43,512.34,53.67,583,72.05c69.27,18,138.3,24.88,209.4,13.08,36.15-6,69.85-17.84,104.45-29.34C989.49,25,1113-14.29,1200,52.47V0Z" opacity=".25"></path>
    <path d="M0,0V15.81C13,36.92,27.64,56.86,47.69,72.05,99.41,111.27,165,111,224.58,91.58c31.15-10.15,60.09-26.07,89.67-39.8,40.92-19,84.73-46,130.83-49.67,36.26-2.85,70.9,9.42,98.6,31.56,31.77,25.39,62.32,62,103.63,73,40.44,10.79,81.35-6.69,119.13-24.28s75.16-39,116.92-43.05c59.73-5.85,113.28,22.88,168.9,38.84,30.2,8.66,59,6.17,87.09-7.5,22.43-10.89,48-26.93,60.65-49.24V0Z" opacity=".5"></path>
    <path d="M0,0V5.63C149.93,59,314.09,71.32,475.83,42.57c43-7.64,84.23-20.12,127.61-26.46,59-8.63,112.48,12.24,165.56,35.4C827.93,77.22,886,95.24,951.2,90c86.53-7,172.46-45.71,248.8-84.81V0Z"></path>
  </svg>
</div>
.wave-container {
  position: relative;
  height: 150px;
  overflow: hidden;
}

svg {
  position: absolute;
  bottom: 0;
  width: 100%;
  animation: wave 8s linear infinite;
}

@keyframes wave {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

使用CSS径向渐变

通过径向渐变创建波浪纹理:

.wave {
  width: 100%;
  height: 100px;
  background: 
    radial-gradient(circle at 10% 50%, transparent 20%, #00b4d8 25%, #00b4d8 30%, transparent 35%),
    radial-gradient(circle at 90% 50%, transparent 20%, #00b4d8 25%, #00b4d8 30%, transparent 35%);
  background-size: 50px 100px;
  animation: moveWave 3s linear infinite;
}

@keyframes moveWave {
  0% { background-position: 0 0; }
  100% { background-position: 50px 0; }
}

使用伪元素和border-radius

通过椭圆形状创建波浪:

.wave-box {
  position: relative;
  height: 200px;
  overflow: hidden;
}

.wave-box::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200%;
  height: 100%;
  background: #0099ff;
  border-radius: 50%;
  animation: waveFlow 5s ease-in-out infinite alternate;
}

@keyframes waveFlow {
  0% { transform: translateX(-25%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(180deg); }
}

波浪效果优化技巧

  • 使用will-change: transform;提升动画性能
  • 调整贝塞尔曲线实现不同速度效果:animation-timing-function: cubic-bezier(0.36,0.45,0.63,0.53);
  • 多层波浪叠加创造深度效果,为每层设置不同透明度和动画延迟
  • 响应式设计时使用vw单位确保波浪比例适配不同屏幕

浏览器兼容方案

对于旧版浏览器需添加前缀:

css制作波浪

@-webkit-keyframes wave {
  /* 相同关键帧内容 */
}
.wave {
  -webkit-animation: wave 3s linear infinite;
  animation: wave 3s linear infinite;
}

这些方法可根据具体需求组合使用,SVG方案适合复杂波浪形状,CSS渐变方案性能更优,伪元素方案实现简单但形状控制较弱。

标签: 波浪css
分享给朋友:

相关文章

css制作箭头

css制作箭头

使用 CSS 边框制作箭头 通过调整元素的 border 属性,利用透明边框和实色边框的组合生成箭头。例如,创建一个向右的箭头: .arrow-right { width: 0; hei…

用css制作导航条

用css制作导航条

水平导航条制作 使用display: inline-block或flexbox实现水平导航 为<ul>和<li>设置样式消除默认列表样式 添加padding和margin控制间…

css制作扇形

css制作扇形

使用 CSS 制作扇形 方法一:利用 border-radius 和 transform 通过设置 border-radius 和 transform 属性,可以创建一个扇形。以下是一个示例代码:…

css制作相册

css制作相册

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

css制作滑动切换

css制作滑动切换

使用CSS实现滑动切换效果 方法一:使用CSS Transition和Transform 通过transition和transform属性实现平滑的滑动动画效果。 .slider-container…

css尾部制作

css尾部制作

如何制作CSS尾部(页脚) 固定定位法 将页脚固定在页面底部,无论内容多少。使用position: fixed结合bottom: 0实现: footer { position: fixed;…