当前位置:首页 > CSS

纯css雪花制作

2026-03-11 22:24:49CSS

纯CSS雪花制作方法

使用CSS的伪元素和动画效果可以创建出逼真的雪花效果。以下是几种实现方式:

基础雪花形状

通过旋转多个线性渐变创建六边形雪花:

.snowflake {
  width: 20px;
  height: 20px;
  background: 
    linear-gradient(0deg, transparent 40%, white 40%, white 60%, transparent 60%),
    linear-gradient(60deg, transparent 40%, white 40%, white 60%, transparent 60%),
    linear-gradient(120deg, transparent 40%, white 40%, white 60%, transparent 60%);
  border-radius: 50%;
}

动画雪花飘落

添加下落和摇摆动画:

@keyframes fall {
  to { transform: translateY(100vh) rotate(360deg); }
}
@keyframes sway {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(20px); }
}

.snowflake {
  animation: 
    fall 5s linear infinite,
    sway 3s ease-in-out infinite;
  position: absolute;
}

多雪花随机分布

使用CSS变量控制多个雪花:

<style>
  :root {
    --snow-count: 20;
  }
  .snow-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
  }
  .snowflake {
    position: absolute;
    opacity: 0.8;
  }
</style>

<div class="snow-container">
  <!-- 通过JavaScript动态生成更好 -->
  <div class="snowflake" style="left:10%; animation-delay:0s"></div>
  <div class="snowflake" style="left:30%; animation-delay:1s"></div>
  <!-- 更多雪花... -->
</div>

进阶复杂雪花

使用box-shadow创建更复杂的形状:

纯css雪花制作

.snowflake {
  width: 2px;
  height: 2px;
  border-radius: 50%;
  box-shadow:
    5px 8px 0 0 white,
    -5px 8px 0 0 white,
    5px -8px 0 0 white,
    -5px -8px 0 0 white,
    8px 5px 0 0 white,
    -8px 5px 0 0 white,
    8px -5px 0 0 white,
    -8px -5px 0 0 white;
}

性能优化建议

  • 使用transform代替top/left动画
  • 减少同时显示的雪花数量(建议不超过50个)
  • 对旧浏览器添加-webkit前缀
  • 考虑使用will-change属性提升性能

这些方法可以组合使用,通过调整动画时间、延迟和大小变化,能创造出更自然的雪景效果。实际项目中建议配合少量JavaScript实现随机位置和大小,但核心视觉效果完全可以用CSS实现。

标签: 雪花css
分享给朋友:

相关文章

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form">…

css制作下拉导航条

css制作下拉导航条

使用纯CSS制作下拉导航条 HTML结构部分需要包含导航主菜单和子菜单项,通常使用嵌套的无序列表(<ul>和<li>)实现: <nav class="dropdown-…

css 制作目录

css 制作目录

CSS 制作目录的方法 使用 CSS 可以轻松为网页内容创建美观且功能性的目录。以下是几种常见方法: 使用 ul 和 li 创建基础目录结构 <div class="toc"> &…

css制作旋转

css制作旋转

CSS旋转的实现方法 CSS提供了多种方式实现元素的旋转效果,主要通过transform属性配合旋转函数完成。以下是常见的旋转实现方式: 使用rotate()函数 transform: rotate…

网页制作css

网页制作css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; 属性: 值; } 例如: p { color: blu…

css制作时钟

css制作时钟

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