当前位置:首页 > CSS

css雪花制作教程

2026-01-28 18:35:25CSS

使用纯CSS制作雪花效果

通过CSS的@keyframes和伪元素可以创建动态雪花效果。以下是一个基础实现方案:

<!DOCTYPE html>
<html>
<head>
<style>
.snowflake {
  position: absolute;
  color: white;
  font-size: 1em;
  animation: fall linear infinite;
}

@keyframes fall {
  to {
    transform: translateY(100vh);
  }
}
</style>
</head>
<body>
<div class="snowflake">❄</div>
</body>
</html>

添加随机化效果

通过CSS变量和JavaScript增强随机性:

.snowflake {
  --x-pos: 0;
  --fall-duration: 10s;
  --delay: 0s;
  left: calc(var(--x-pos) * 1vw);
  animation: fall var(--fall-duration) var(--delay) linear infinite;
}

@keyframes fall {
  0% {
    transform: translateY(-10vh) rotate(0deg);
  }
  100% {
    transform: translateY(110vh) rotate(360deg);
  }
}
function createSnowflakes() {
  const count = 50;
  for (let i = 0; i < count; i++) {
    const flake = document.createElement('div');
    flake.className = 'snowflake';
    flake.innerHTML = '❄';
    flake.style.setProperty('--x-pos', Math.random());
    flake.style.setProperty('--fall-duration', 5 + Math.random() * 10 + 's');
    flake.style.setProperty('--delay', Math.random() * 5 + 's');
    flake.style.fontSize = Math.random() * 10 + 5 + 'px';
    document.body.appendChild(flake);
  }
}

优化性能的版本

使用will-changetransform提升渲染性能:

.snowflake {
  will-change: transform;
  pointer-events: none;
  position: fixed;
  top: -10%;
  z-index: 9999;
}

多种雪花形状

通过伪元素创建不同形状:

.snowflake::before {
  content: '❄';
}
.snowflake:nth-child(2n)::before {
  content: '✦';
}
.snowflake:nth-child(3n)::before {
  content: '❉';
}

响应式调整

根据窗口大小调整雪花数量:

css雪花制作教程

window.addEventListener('resize', () => {
  const flakes = document.querySelectorAll('.snowflake');
  const targetCount = Math.floor(window.innerWidth / 20);
  if (flakes.length < targetCount) {
    createSnowflakes(targetCount - flakes.length);
  }
});

分享给朋友:

相关文章

css地图制作教程

css地图制作教程

CSS地图制作方法 使用CSS制作地图通常涉及利用HTML元素和CSS样式来绘制地理图形或交互式元素。以下是几种常见方法: 基础形状绘制 通过CSS的border、box-shadow和transf…

css制作雪花

css制作雪花

使用CSS制作雪花效果 通过CSS的伪元素、动画和变换属性可以创建逼真的雪花效果。以下是实现方法: 基础雪花形状 使用::before和::after伪元素创建六边形结构: .snowflake…

css横线制作教程

css横线制作教程

使用 border 属性制作横线 通过设置元素的 border-top 或 border-bottom 属性可以快速生成横线。例如: .hr-border { border-top: 1px s…

js实现雪花

js实现雪花

使用 Canvas 绘制雪花 通过 HTML5 的 Canvas API 动态生成雪花效果,适合需要复杂动画的场景。 const canvas = document.getElementById('…

css继承制作教程

css继承制作教程

CSS 继承的基本概念 CSS 继承是指子元素自动获取父元素的某些样式属性值,无需重复定义。继承机制可以减少代码冗余,提高开发效率。 可继承的常见属性 以下属性通常会被子元素继承: 文本相…

css横线制作教程

css横线制作教程

使用 border 属性制作横线 通过 border 属性可以快速创建横线。设置元素的 border-top 或 border-bottom 为所需样式,调整颜色、粗细和样式即可。 .horizon…