纯css写一个大太阳的天气图标的方法示例

下面是“纯css写一个大太阳的天气图标的方法示例”的完整攻略:

一、准备工作

在开始之前,你需要先准备好以下内容:

  1. 一个文本编辑器,如VSCode或Sublime Text。
  2. 一个支持CSS3的浏览器,如Google Chrome、Firefox等。
  3. 一个基本的HTML文件,用于容纳并展示该图标。

二、开始制作

1. 设置基本样式

在HTML文件中,我们首先需要创建一个容器,并对该容器设置一些基本样式,为后续的制作打下基础:

<div class="weather-icon sunny">
  <div class="sun"></div>
</div>
.weather-icon {
  width: 120px;  /* 设置容器宽度 */
  height: 120px; /* 设置容器高度 */
  position: relative; /* 设置相对定位,方便后续用于定位元素 */
}

.sunny .sun {
  position: absolute; /* 设置绝对定位 */
  top: 15px; /* 上部间距 */
  left: 15px; /* 左侧间距 */
  width: 90px; /* 太阳宽度 */
  height: 90px; /* 太阳高度 */
  border-radius: 50%; /* 圆形 */
  border: 15px solid #fff; /* 白色边框 */
  box-shadow: 0 0 0 15px #FDB813, 0 0 0 20px #FFD948; /* 黄色和淡黄色渐变外阴影 */
}

2. 制作太阳

接下来,我们需要使用CSS3中的“box-shadow”属性来制作太阳的光芒:

.box {
  box-shadow: 0 0 0 15px #FDB813, 0 0 0 20px #FFD948;
}

这里采用了两个不同大小和不同颜色的色块,借助较大的色块制造出了“内敛”的效果。同时,由于圆形元素设置为了有白色边框的圆形,因此box-shadow属性的实际表现效果是在边框之外,形成一个“光晕”效果。

3. 完成图标

通过以上的制作方法,我们就成功地用纯CSS制作出了一个非常不错的大太阳天气图标。你可以在HTML文件中引用这段CSS样式代码,然后将相应的元素以及类名引用到你的页面中,即可直接使用。

三、示例说明

示例1:制作多个太阳并附带动画效果

为了让这个图标变得更加有趣和生动,我们可以为其添加一些CSS3动画效果,比如先前提到的旋转、变形等效果。例如下面这个示例,制作了多个太阳,并在其上基于CSS3的动画效果加以装饰:

<div class="weather-icons">
  <div class="sun-icon">
    <div class="sun"></div>
    <div class="rays"></div>
  </div>
  <div class="sun-icon">
    <div class="sun"></div>
    <div class="rays"></div>
  </div>
  <div class="sun-icon">
    <div class="sun"></div>
    <div class="rays"></div>
  </div>
</div>
.weather-icons {
  display: flex; /* 设置为flex布局 */
  justify-content: center; /* 水平居中 */
}

.sun-icon {
  position: relative;
  width: 120px; /* 宽高大小相同 */
  height: 120px;
  margin: 20px; /* 设置间隔 */
  animation: 3s linear infinite rotate; /* 添加动画效果 */
}

.sun {
  position: absolute;
  top: 15px;
  left: 15px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  border: 15px solid #fff;
  box-shadow: 0 0 0 15px #FDB813, 0 0 0 20px #FFD948;
}

.rays {
  position: absolute;
  top: 15px;
  left: 15px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  border: 10px solid transparent;
  border-top: 10px solid #FFD948;
  box-shadow: 0 0 0 10px #FDB813;
  opacity: 0.5;
  animation: 3s linear infinite transform;
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes transform {
  0% {
    transform: scale(0.3);
    opacity: 0.3;
  }
  50% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.3);
    opacity: 0.3;
  }
}

在这个示例中,我们添加了一个名为“weather-icon”的容器,里面包含了多个名为“sun-icon”的套件,核心是用CSS3光顾到制作出的太阳及其辐射。这里的关键是用了CSS3的“rotate”和“transform”等动画属性,在做动画时用“@keyframes”语法定义属性变化,实现旋转以及太阳光芒的大小变化等效果。

示例2:根据不同天气类型制作背景不同的图标

这个示例中,我们通过一些简单的CSS样式规则判断天气类型,并根据不同的天气类型给图标设置不同的背景、阴影等效果。

<div class="weather-icon sunny">
  <div class="sun"></div>
</div>
.weather-icon {
  width: 150px;
  height: 150px;
  position: relative;
}

.sunny .sun {
  position: absolute;
  top: 30px;
  left: 50px;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 20px solid #fff;
  box-shadow: 0 0 0 20px #FDB813, 0 0 0 25px #FFD948;
}

.cloudy .cloud {
  position: absolute;
  top: 30px;
  left: 30px;
  width: 90px;
  height: 60px;
  border-radius: 50%;
  border: 20px solid white;
  box-shadow: 0 0 0 20px white inset;
}

.rainy .cloud {
  position: absolute;
  top: 35px;
  left: 45px;
  width: 90px;
  height: 60px;
  border-radius: 50%;
  border: 20px solid white;
  box-shadow: 0 0 0 20px white inset, 10px 20px 10px -10px rgba(0,0,0,.8);
}

.snowy .cloud {
  position: absolute;
  top: 45px;
  left: 45px;
  width: 80px;
  height: 60px;
  border-radius: 50%;
  border: 20px solid white;
  box-shadow: 0 0 0 20px white inset, 10px 20px 10px -10px rgba(0,0,0,.8), 20px 40px 10px -18px rgba(0,0,0,.6), -10px 75px 20px -20px rgba(0,0,0,.6);
}

.stormy .cloud {
  position: absolute;
  top: 30px;
  left: 50px;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 20px solid white;
  box-shadow: 0 0 0 20px white inset, 0 0 10px white inset, -30px 20px 10px -20px black, 30px 20px 10px -20px black;
}

在这个示例中,所有图标都使用了同一类“容器”元素,className属性即代表着天气类型。“background”属性用于设置元素的背景颜色,而“box-shadow”和“border”属性则分别用于制造元素外阴影和边框的效果,从而使元素更加立体感强,更符合真实天气图片的视觉感受。注意,所有元素的宽高大小、位置以及渐变的颜色、大小等都有所不同,是为了体现出每一种天气类型的特点,突出元素的形状和素材的特点。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯css写一个大太阳的天气图标的方法示例 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • HTML5 input placeholder 颜色修改示例

    下面是关于“HTML5 input placeholder 颜色修改示例”的完整攻略: 标题 HTML5 input placeholder 颜色修改示例 介绍 HTML5提供了 placeholder 属性,用来在输入框中显示占位符文本,让用户更好地了解该输入框的用途。但默认情况下, placeholder 的颜色是灰色的,在某些场景下不够美观,需要对其进…

    css 2023年6月9日
    00
  • 纯css修改浏览器scrollbar滚动条样式示例

    下面是关于“纯css修改浏览器scrollbar滚动条样式”的完整攻略: 1. 什么是浏览器滚动条 浏览器滚动条(scrollbar)是指在浏览器中可以通过滑块(thumb)、滚动条轨道(track)、箭头按钮(button)等元素来控制网页内容的滚动。在不同浏览器和操作系统下,滚动条的样式和布局可能会有所不同。下面我们就来讲解如何通过纯css来自定义网页滚…

    css 2023年6月10日
    00
  • 使用CSS3的appearance属性改变任何元素的浏览器默认风格

    使用CSS3的appearance属性可以改变任何元素的浏览器默认风格。这个属性可以用来修改一些标准控件的样式,或者改变一些HTML元素的默认外观,从而打造独特的用户体验。 修改标准控件的样式 如果想要修改标准控件的样式,可以使用appearance属性。下面以修改按钮的样式为例: button { appearance: none; background-…

    css 2023年6月10日
    00
  • javascript实现QQ空间相册展示源码

    下面就来一步步讲解如何通过JavaScript实现QQ空间相册展示。 准备工作 为了实现QQ空间相册展示,我们需要先在QQ空间中创建一个相册,并且获取该相册的相片列表。而获取相册相片列表需要通过调用QQ空间提供的API来完成。具体的API文档可以参考 QQ互联开发平台。 在获取到相片列表之后,我们就可以使用JavaScript来进行相片的展示了。 编写代码 …

    css 2023年6月10日
    00
  • webpack中如何使用雪碧图的示例代码

    Webpack是一个模块打包器,可以将多个模块打包成一个或多个静态资源文件,其中包括JavaScript文件、CSS文件、图片等。在Web开发中,对于一些小图标等,我们通常采用雪碧图的方式进行处理,以减少网络请求次数。接下来,我将给出一个使用Webpack中如何使用雪碧图的完整攻略。 步骤一:安装相关工具依赖 在使用Webpack进行雪碧图处理之前,首先需要…

    css 2023年6月10日
    00
  • 基于Arcgis for javascript实现百度地图ABCD marker的效果

    接下来我会为您详细讲解基于ArcGIS for JavaScript实现百度地图ABCD Marker的效果的攻略,并提供两个示例说明。 1. 确定需求 首先需要明确我们的需求。本文中我们的目标是在ArcGIS for JavaScript中实现和百度地图类似的ABCD Marker效果。所谓ABCD Marker,是指可以根据指定的数值和颜色,显示不同的M…

    css 2023年6月10日
    00
  • 如何使用pace.js美化你的网站加载进度条详解

    当用户访问网站时,有时候需要等待页面加载。在这个过程中,用户可能会感到无聊或者不知道页面是否会成功加载。这时候,加载进度条就可以非常好地解决这个问题,它能让用户看到加载进度,给予他们一种等待过程的可视化反馈。在这里,我将介绍如何使用pace.js来实现这一效果。 步骤一:下载和引入pace.js文件 首先,你需要下载pace.js到你的项目目录中,然后在HT…

    css 2023年6月10日
    00
  • 程序设计HTML5 Canvas API

    程序设计 HTML5 Canvas API 是现代 Web 开发学习的重点,因为它极大地扩展了 Web 开发人员可以使用的多媒体引擎范围。Canvas API 可以让你绘制和动态生成图形,包括位图和矢量图,图像效果等。在本篇文章中,详细讲解程序设计 HTML5 Canvas API 的完整攻略。 什么是 Canvas API Canvas API 是 HTM…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部