当前位置:首页 > CSS

纯css雪花制作

2026-04-01 18:31:01CSS

纯CSS雪花制作方法

使用伪元素和旋转动画

通过CSS的伪元素(::before::after)创建雪花的多个分支,结合transform属性和rotate动画实现旋转效果。

.snowflake {
  position: absolute;
  width: 10px;
  height: 10px;
  color: white;
  animation: spin 8s linear infinite;
}

.snowflake::before, .snowflake::after {
  content: "❄";
  position: absolute;
  left: 0;
  top: 0;
}

.snowflake::before {
  transform: rotate(60deg);
}

.snowflake::after {
  transform: rotate(-60deg);
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

多分支复杂雪花

通过多个伪元素叠加和不同角度的旋转,实现更复杂的六角雪花形状。

.snowflake {
  position: relative;
  width: 0;
  height: 0;
}

.snowflake::before, .snowflake::after,
.snowflake span::before, .snowflake span::after {
  content: "";
  position: absolute;
  background: white;
  width: 2px;
  height: 20px;
  left: 50%;
  top: 50%;
  transform-origin: 50% 100%;
}

.snowflake::before { transform: translate(-50%, -50%) rotate(0deg); }
.snowflake::after { transform: translate(-50%, -50%) rotate(60deg); }
.snowflake span::before { transform: translate(-50%, -50%) rotate(120deg); }
.snowflake span::after { transform: translate(-50%, -50%) rotate(180deg); }

飘落动画效果

为雪花添加垂直位移和透明度变化的动画,模拟自然飘落效果。

@keyframes snowfall {
  0% {
    transform: translateY(-100px) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translateY(100vh) rotate(360deg);
    opacity: 0;
  }
}

.snowflake {
  animation: snowfall 10s linear infinite;
  animation-delay: random(5s);
}

多雪花随机分布

使用JavaScript动态生成多个雪花元素,并随机设置位置、大小和动画延迟。

纯css雪花制作

document.addEventListener('DOMContentLoaded', function() {
  const snowflakes = 30;
  const container = document.body;

  for (let i = 0; i < snowflakes; i++) {
    const flake = document.createElement('div');
    flake.className = 'snowflake';
    flake.style.left = `${Math.random() * 100}vw`;
    flake.style.fontSize = `${Math.random() * 10 + 5}px`;
    flake.style.animationDuration = `${Math.random() * 5 + 5}s`;
    flake.style.animationDelay = `${Math.random() * 5}s`;
    container.appendChild(flake);
  }
});

注意事项

  • 雪花的颜色通常设置为白色(color: whitebackground: white
  • 使用position: absolutefixed确保雪花可以自由定位
  • 调整动画时间和延迟可以创造更自然的随机效果
  • 对于复杂形状,可能需要多个伪元素叠加实现

这些方法可以单独使用或组合应用,根据需求调整参数即可创建不同风格的CSS雪花效果。

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

相关文章

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成: 选择器 { 属性: 值; } 例如设置段落文字颜色为红色: p { color: red;…

css制作时钟

css制作时钟

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

css样式制作

css样式制作

CSS 样式制作基础 CSS(层叠样式表)用于控制网页的视觉呈现。通过选择器和属性组合,可以精确调整元素的布局、颜色、字体等样式。 选择器类型 元素选择器:p { color: red; } 选中…

使用css制作钢琴块

使用css制作钢琴块

使用 CSS 制作钢琴块 钢琴块通常由黑白键交替排列组成,可以通过 HTML 和 CSS 实现。以下是实现钢琴块的步骤: HTML 结构 创建一个包含黑白键的容器,使用 <div> 元素…

css制作春联

css制作春联

使用CSS制作春联的方法 基础布局与样式 春联通常由一对垂直排列的红色对联和顶部的横批组成。使用CSS的flexbox布局可以轻松实现这种结构。创建一个父容器,内部包含三个子元素:横批、上联和下联。…

css制作滑动页面

css制作滑动页面

使用CSS实现滑动页面 通过CSS的overflow和scroll属性可以轻松实现滑动页面效果。以下是一种常见方法: .container { width: 100%; height: 30…