当前位置:首页 > CSS

css制作web天气

2026-04-01 21:25:25CSS

使用CSS制作Web天气效果

通过CSS可以创建动态的天气效果,如晴天、雨天、雪天等。以下是几种常见天气效果的实现方法。

晴天效果

创建一个太阳和云朵的简单组合,使用CSS动画让太阳旋转。

<div class="weather sunny">
  <div class="sun"></div>
  <div class="cloud"></div>
</div>
.weather {
  width: 200px;
  height: 200px;
  position: relative;
  background: skyblue;
}

.sun {
  width: 50px;
  height: 50px;
  background: yellow;
  border-radius: 50%;
  position: absolute;
  top: 20px;
  left: 20px;
  animation: rotate 5s linear infinite;
}

.cloud {
  width: 80px;
  height: 30px;
  background: white;
  border-radius: 20px;
  position: absolute;
  top: 50px;
  left: 60px;
}

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

雨天效果

使用伪元素和动画模拟雨滴下落。

<div class="weather rainy">
  <div class="cloud"></div>
</div>
.rainy {
  background: darkgray;
}

.rainy .cloud {
  width: 100px;
  height: 40px;
  background: white;
  border-radius: 20px;
  position: absolute;
  top: 30px;
  left: 50px;
}

.rainy .cloud::after {
  content: '';
  position: absolute;
  width: 2px;
  height: 10px;
  background: lightblue;
  top: 40px;
  left: 10px;
  animation: rain 1s linear infinite;
}

@keyframes rain {
  from { transform: translateY(0); }
  to { transform: translateY(50px); }
}

雪天效果

使用多个动画元素模拟雪花飘落。

<div class="weather snowy">
  <div class="cloud"></div>
</div>
.snowy {
  background: lightgray;
}

.snowy .cloud {
  width: 100px;
  height: 40px;
  background: white;
  border-radius: 20px;
  position: absolute;
  top: 30px;
  left: 50px;
}

.snowy .cloud::after {
  content: '❄';
  position: absolute;
  font-size: 10px;
  top: 40px;
  left: 10px;
  animation: snow 3s linear infinite;
}

@keyframes snow {
  from { transform: translateY(0) rotate(0deg); }
  to { transform: translateY(50px) rotate(360deg); }
}

动态切换天气

通过JavaScript动态切换天气效果。

css制作web天气

<div class="weather" id="weather">
  <div class="sun"></div>
  <div class="cloud"></div>
</div>
<button onclick="changeWeather('sunny')">Sunny</button>
<button onclick="changeWeather('rainy')">Rainy</button>
<button onclick="changeWeather('snowy')">Snowy</button>
function changeWeather(type) {
  const weather = document.getElementById('weather');
  weather.className = 'weather ' + type;
}

以上方法展示了如何使用CSS和少量JavaScript创建动态的天气效果。可以根据需求进一步调整样式和动画参数。

标签: 天气css
分享给朋友:

相关文章

如何制作css导航菜单

如何制作css导航菜单

创建基本HTML结构 导航菜单的基础是HTML结构。使用<nav>标签包裹无序列表<ul>,每个菜单项用<li>标签表示,链接用<a>标签。 <…

css制作圆形

css制作圆形

使用 border-radius 属性 通过设置 border-radius 为 50%,可以将元素变为圆形。此方法适用于正方形元素,确保宽度和高度相等。 .circle { width: 10…

用css制作导航条

用css制作导航条

基础导航条结构 HTML结构使用无序列表<ul>和列表项<li>,这是语义化的标准做法: <nav> <ul class="navbar">…

纯css制作幻灯片

纯css制作幻灯片

纯CSS制作幻灯片的方法 关键思路 利用CSS动画和@keyframes实现自动轮播效果,通过隐藏其他幻灯片项并控制透明度或位置变化来切换内容。 基础HTML结构 <div class…

css如何制作三角形

css如何制作三角形

使用边框属性制作三角形 通过设置元素的宽度和高度为0,利用边框属性可以创建三角形。边框的交汇处会形成斜边,通过设置不同边的颜色和透明度实现三角形效果。 .triangle { width: 0;…

表格制作css

表格制作css

CSS表格样式设计 基础表格样式 通过border-collapse合并边框,使表格更整洁。width控制整体宽度,text-align设置文字对齐方式。 table { border-coll…