当前位置:首页 > 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制作导航栏

水平导航栏 使用 display: inline-block 或 flexbox 创建水平导航栏。设置背景色、内边距和悬停效果增强交互性。 <nav class="horizontal-nav…

css样式制作

css样式制作

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

css制作许愿墙六块

css制作许愿墙六块

CSS 制作许愿墙六块布局 使用 CSS 创建一个六块许愿墙布局可以通过多种方式实现,以下是两种常见的方法:使用 CSS Grid 或 Flexbox。以下代码示例展示了如何实现这两种布局。 方…

css 边框制作

css 边框制作

基础边框设置 使用 border 属性可快速设置边框样式、宽度和颜色: .element { border: 1px solid #000; /* 宽度 | 样式 | 颜色 */ } 样式选…

css熊猫制作

css熊猫制作

使用CSS绘制熊猫的步骤 创建一个熊猫的CSS图形需要利用CSS的border-radius、box-shadow等属性来构建圆形和椭圆形元素。以下是实现方法: HTML结构 <div cl…

css制作表单

css制作表单

创建基本表单结构 使用HTML的<form>标签作为表单容器,内部包含输入字段、标签和提交按钮。表单元素通常需要<label>关联以提高可访问性。 <form>…