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

yizhihongxing

下面是“纯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日

相关文章

  • CSS的未来:一些试验性非主流隐藏在浏览器中的CSS属性

    CSS的未来可能不仅仅是我们已知的那些常规CSS属性,并且存在了一些试验性非主流CSS属性,这些属性可以在现代浏览器中进行实验和使用。在本篇攻略中,我们将讲解一些比较有趣的试验性非主流CSS属性,并提供一些示例。 1. clip-path clip-path是一个用于剪辑元素的CSS属性,它可以用于剪辑图片或其他图形,以及用于实现很炫酷的动画效果。clip-…

    css 2023年6月9日
    00
  • JS和css实现检测移动设备方向的变化并判断横竖屏幕

    JS和CSS可以结合使用来检测移动设备方向的变化并判断横竖屏幕。下面是实现的步骤: 1. 通过JS检测屏幕方向变化 JS通过window.orientation来获取屏幕的方向,值为0表示竖屏,值为90或-90表示横屏。 window.addEventListener("orientationchange", function() { i…

    css 2023年6月10日
    00
  • jQuery+CSS3折叠卡片式下拉列表框实现效果

    下面我将详细讲解一下“jQuery+CSS3折叠卡片式下拉列表框实现效果”的完整攻略。 概述 本攻略旨在介绍如何利用jQuery和CSS3实现一个折叠卡片式下拉列表框,该下拉列表框可以自定义标题和内容,并支持展开和收缩。 实现步骤 编写HTML结构 首先在HTML文件中插入下面的代码,该代码表示一个折叠卡片式下拉列表框的基本结构: <div class…

    css 2023年6月10日
    00
  • python playwright之元素定位示例详解

    首先我们来讲一下“python playwright之元素定位示例详解”的完整攻略。该攻略主要介绍如何使用Python语言中的Playwright框架来进行网页元素定位的操作。在该攻略中,我们将包含以下几个部分的内容: 介绍 Playwright 框架的概述及基本用法; 使用 Playwright 进行元素定位的方式及示例; 通过示例来说明 Playwrig…

    css 2023年6月9日
    00
  • 利用原生JavaScript获取元素样式只是获取而已

    获取元素样式是我们在前端开发中经常需要使用的一种技术,而利用原生JavaScript获取元素样式只是获取而已,它有一定的规则和技巧。以下是关于该过程的完整攻略: 利用原生JavaScript获取元素样式 1.用getElementById方法获取元素样式属性 首先使用getElementById方法获取一个元素对象,然后获取该元素对象的某个样式属性。示例如下…

    css 2023年6月10日
    00
  • 通过canvas转换颜色为RGBA格式及性能问题的解决

    下面是关于通过canvas转换颜色为RGBA格式及性能问题的解决的完整攻略。 什么是RGBA格式? 在Web开发中,我们经常需要使用颜色值来设置页面元素的外观,如背景色、边框色、字体颜色等。而RGBA是指RGB颜色模式下,加上了Alpha通道透明度控制的颜色表示方式。RGBA颜色格式是由红、绿、蓝和透明度四个通道组成的,其取值范围均为0-255,其中透明度范…

    css 2023年6月9日
    00
  • CSS实现当鼠标移到input上时鼠标变为不可输入的状态

    要实现当鼠标移到input上时鼠标变为不可输入的状态,可以通过CSS的cursor属性来实现。cursor属性可用于设置鼠标指针在鼠标悬停在元素上时的样式,将其设置为not-allowed就可以实现不可输入的状态。 以下是实现该效果的攻略: 步骤一:在HTML文件中定义input元素 首先,在HTML代码中定义一个input元素,例如: <input …

    css 2023年6月10日
    00
  • 使用CSS和Java来构建管理仪表盘布局的实例代码

    使用CSS和JavaScript构建管理仪表盘布局的实例代码可以分为以下几步: HTML结构设计 首先,需要在HTML中设计管理仪表盘的结构,将仪表盘分为若干个区域,并为每个区域定义一个独立的ID。例如: <div id="dashboard"> <div id="header">Header …

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