.wa…">
当前位置:首页 > CSS

css制作海浪

2026-02-13 00:36:20CSS

使用CSS制作海浪效果

通过CSS的clip-path属性和动画可以创建动态的海浪效果。以下是一种实现方法:

css制作海浪

<div class="wave"></div>
.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100px;
  background: linear-gradient(to right, #4facfe 0%, #00f2fe 100%);
  clip-path: path("M0,0 C150,200 350,0 500,100 L500,0 L0,0 Z");
  animation: wave 8s linear infinite;
}

@keyframes wave {
  0% {
    clip-path: path("M0,0 C150,200 350,0 500,100 L500,0 L0,0 Z");
  }
  50% {
    clip-path: path("M0,0 C150,0 350,200 500,100 L500,0 L0,0 Z");
  }
  100% {
    clip-path: path("M0,0 C150,200 350,0 500,100 L500,0 L0,0 Z");
  }
}

使用SVG结合CSS

另一种方法是使用SVG路径配合CSS动画:

css制作海浪

<div class="wave-container">
  <svg viewBox="0 0 1200 120" preserveAspectRatio="none">
    <path class="wave" d="M0,0 C150,200 350,0 500,100 C650,200 850,0 1000,100 C1150,200 1350,0 1500,100 L1500,0 L0,0 Z"></path>
  </svg>
</div>
.wave-container {
  position: relative;
  height: 150px;
  overflow: hidden;
}

.wave {
  fill: #4facfe;
  animation: wave 8s linear infinite;
}

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

多层波浪效果

创建更真实的海浪效果可以叠加多个波浪层:

<div class="ocean">
  <div class="wave wave1"></div>
  <div class="wave wave2"></div>
  <div class="wave wave3"></div>
</div>
.ocean {
  position: relative;
  height: 200px;
  overflow: hidden;
}

.wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200%;
  height: 100%;
  background-repeat: repeat no-repeat;
  background-position: 0 bottom;
  transform-origin: center bottom;
}

.wave1 {
  background-size: 50% 80px;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0,0 C150,40 350,-40 500,0 C650,40 850,-40 1000,0 C1150,40 1350,-40 1500,0 L1500,120 L0,120 Z" fill="%234facfe"/></svg>');
  animation: wave 10s linear infinite;
}

.wave2 {
  background-size: 50% 100px;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0,0 C150,60 350,-60 500,0 C650,60 850,-60 1000,0 C1150,60 1350,-60 1500,0 L1500,120 L0,120 Z" fill="%2300f2fe"/></svg>');
  animation: wave 8s linear infinite reverse;
  opacity: 0.7;
}

.wave3 {
  background-size: 50% 60px;
  background-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1200 120" xmlns="http://www.w3.org/2000/svg"><path d="M0,0 C150,20 350,-20 500,0 C650,20 850,-20 1000,0 C1150,20 1350,-20 1500,0 L1500,120 L0,120 Z" fill="%2300d1fe"/></svg>');
  animation: wave 12s linear infinite;
  opacity: 0.5;
}

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

这些方法提供了不同复杂度的海浪效果实现,可根据项目需求选择合适的方式。SVG方法通常能提供更平滑的波浪曲线,而纯CSS方法则更轻量。多层波浪叠加可以创造出更真实的海洋波动效果。

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

相关文章

css如何制作三角形

css如何制作三角形

使用 border 属性制作三角形 通过设置元素的 border 属性,利用边框的透明特性可以创建三角形。将一个元素的宽度和高度设为 0,然后通过设置不同方向的边框宽度和颜色来实现。 .triang…

网页制作css是什么

网页制作css是什么

CSS的定义与作用 CSS(Cascading Style Sheets,层叠样式表)是一种用于描述网页外观和格式的样式语言。它通过定义HTML元素的布局、颜色、字体等视觉属性,实现内容与表现的分离,…

div css制作导航

div css制作导航

导航栏的基本结构 使用HTML的<nav>标签包裹导航链接,内部通常采用无序列表<ul>和列表项<li>结构。示例代码如下: <nav> <…

css 制作字体

css 制作字体

自定义字体方法 使用 @font-face 规则引入自定义字体文件(如 .woff, .woff2, .ttf)。需定义字体名称和文件路径: @font-face { font-family:…

css 制作石头

css 制作石头

使用CSS创建石头效果 通过CSS的border-radius、box-shadow和background属性可以模拟石头的自然不规则形状和纹理。以下是一个基础实现: .stone { widt…

css制作春季踏青

css制作春季踏青

使用CSS制作春季踏青主题的网页元素 背景设计 为网页添加春季风格的背景,可以使用渐变色或自然图案。例如,使用柔和的绿色和粉色渐变: body { background: linear-grad…