有趣的CSS - 旋转的太极图

目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

使用 :before:after 伪元素以及 animation 属性画一个顺时针旋转的太极图。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<div class="taiji">
  <div class="yu"></div>
</div>

两个 div 标签,分别用作绘制整体大圆以及阴阳鱼。

css 部分代码

.taiji{
  width: 200px;
  height: 200px;
  position: relative;
  border-radius: 50%;
  box-shadow: 0px -10px 20px 0px #2AF598, 0px 10px 20px 0px #08AEEA;
  animation: zhuan 5s linear infinite;  /*设置旋转动画*/
}
.taiji:before,.taiji:after{
  content: '';
  width: 200px;
  height: 100px;
  position: absolute;
  background-color: #fff;
  border-radius: 100px 100px 0 0;
}
.taiji:after{
  top: 100px;
  background-color: #000;
  border-radius: 0 0 100px 100px;
}
.yu:before,.yu:after{
  content: '';
  width: 24px;
  height: 24px;
  position: absolute;
  top: 50px;
  left: 100px;
  border-radius: 50%;
  background-color: #000;
  border: 38px solid #fff;
  z-index: 1;
}
.yu:after{
  left: 0;
  background-color: #fff;
  border: 38px solid #000;
}
@keyframes zhuan{
  to {
    transform: rotate(360deg);
  }
}

.taiji:before.taiji:after 伪元素分别绘制黑白阴阳鱼的主体,.yu:before.yu:after 伪元素分别绘制黑白阴阳鱼的小鱼眼,然后设置旋转动画,顺时针旋转。

完整代码如下

html 页面

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style.css">
    <title>旋转的太极图</title>
  </head>
  <body>
    <div class="app">
      <div class="taiji">
        <div class="yu"></div>
      </div>
    </div>
  </body>
</html>

css 样式

/** style.css **/
.app{
  width: 100%;
  height: 100vh;
  background-color: #e8e8e8;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}
.taiji{
  width: 200px;
  height: 200px;
  position: relative;
  border-radius: 50%;
  box-shadow: 0px -10px 20px 0px #2AF598, 0px 10px 20px 0px #08AEEA;
  animation: zhuan 5s linear infinite;
}
.taiji:before,.taiji:after{
  content: '';
  width: 200px;
  height: 100px;
  position: absolute;
  background-color: #fff;
  border-radius: 100px 100px 0 0;
}
.taiji:after{
  top: 100px;
  background-color: #000;
  border-radius: 0 0 100px 100px;
}
.yu:before,.yu:after{
  content: '';
  width: 24px;
  height: 24px;
  position: absolute;
  top: 50px;
  left: 100px;
  border-radius: 50%;
  background-color: #000;
  border: 38px solid #fff;
  z-index: 1;
}
.yu:after{
  left: 0;
  background-color: #fff;
  border: 38px solid #000;
}
@keyframes zhuan{
  to {
    transform: rotate(360deg);
  }
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读

我是 Just,这里是「设计师工作日常」,求点赞求关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/376660.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PKI - 03 密钥管理(如何进行安全的公钥交换)

文章目录 Pre密钥管理面临的挑战安全密钥管理的几种方式手动密钥交换与确认受信任的介绍 Pre PKI - 02 对称与非对称密钥算法 密钥管理面临的挑战 密钥管理面临的挑战主要包括以下几点&#xff1a; 安全的公钥交换&#xff1a;在使用基于非对称密钥算法的服务之前&#xff0c…

Hadoop3.x基础(4)- Yarn

来源&#xff1a;B站尚硅谷 目录 Yarn资源调度器Yarn基础架构Yarn工作机制作业提交全过程Yarn调度器和调度算法先进先出调度器&#xff08;FIFO&#xff09;容量调度器&#xff08;Capacity Scheduler&#xff09;公平调度器&#xff08;Fair Scheduler&#xff09; Yarn常用命…

回归预测 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现ABC-BP人工蜂群算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现ABC-BP人工蜂群算法优化BP神经网络多变量回归预测&#x…

盘点Java集合(容器)概览,Collection和Map在开发中谁用的最多?

写在开头 在Java的世界里万物皆对象。但我认为是万物皆数据&#xff0c;世界由各种各样数据构建起来&#xff0c;我们通过程序去实现数据的增删改查、转入转出、加减乘除等等&#xff0c;不同语言的实现方式殊途同归。由此可见&#xff0c;数据对于程序语言的重要性。 这段话…

Spring Boot 001 环境配置以及初始化项目

知识储备 后端&#xff1a;JavaSE, SSM&#xff08;SpringSpringMVCMyBatis&#xff09; 前端&#xff1a;HTML, CSS, Javascript 环境准备 JDK17下载 Java Downloads | Oracle 安装方式 JDK17在Windows安装以及环境变量配置&#xff08;超详细的教程&#xff09;_jdk17安装…

功能强大的国外商业PHP在线教育系统LMS源码,直播课程系统

源码介绍 Proacademy是在线教育一体化的解决方案&#xff0c;用于创建类似于Udemy、Skillshare、Coursera这种在线教育市场。 这个平台提供在线课程&#xff0c;现场课程&#xff0c;测验等等&#xff0c;并有一个基于实际业务需要的高级认证插件&#xff0c;程序基于Laravel…

NLP中的嵌入和距离度量

本文将深入研究嵌入、矢量数据库和各种距离度量的概念&#xff0c;并提供示例和演示代码。 NLP中的嵌入 嵌入是连续向量空间中对象、单词或实体的数值表示。在NLP中&#xff0c;词嵌入捕获词之间的语义关系&#xff0c;使算法能够更好地理解文本的上下文和含义。 让我们试着用…

国考省考行测:平行结构体

国考省考行测&#xff1a;平行结构体 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能&#xff0c;附带行测和申论&#xff0c;而常规国考省考最重要的还是申论和行测&#xff0c;所以大家认真准备吧&#xff0c;我讲一起屡屡申论和行测的重要知识点 遇…

微信小程序(三十七)选项点击高亮效果

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.选择性渲染类 2.以数字为需渲染内容&#xff08;数量&#xff09; 源码&#xff1a; index.wxml <view class"Area"><!-- {{activeNumindex?Active:}}是选择性添加类名进行渲染 -->&l…

【蓝桥杯冲冲冲】[NOIP2017 提高组] 宝藏

蓝桥杯备赛 | 洛谷做题打卡day29 文章目录 蓝桥杯备赛 | 洛谷做题打卡day29[NOIP2017 提高组] 宝藏题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2提示题解代码我的一些话[NOIP2017 提高组] 宝藏 题目背景 NOIP2017 D2T2 题目描…

自定义npm包从vue2升级到vue3遇到的问题解决

1.执行npm run build时报错&#xff1a; (node:16724) UnhandledPromiseRejectionWarning: SyntaxError: Unexpected token ‘??’ at Loader.moduleStrategy (internal/modules/esm/translators.js:149:18 解决&#xff1a;更新node版本 查看了我使用的node版本是14.21.3&…

Win32 SDK Gui编程系列之--创建菜单

菜单的概要在“Windows编程的基础”中提到了。在这里,对菜单的制作进行更详细的说明。 1.菜单的制作 菜单将数据设置在下面的MENUITEM结构中,用InsertMenuItem函数创建。 typedef struct tagMENUITEMINFO { fMask UINT cbSize;…

使用vite创建vue+ts项目,整合常用插件(scss、vue-router、pinia、axios等)和配置

一、检查node版本 指令&#xff1a;node -v 为什么要检查node版本&#xff1f; Vite 需要 Node.js 版本 18&#xff0c;20。然而&#xff0c;有些模板需要依赖更高的 Node 版本才能正常运行&#xff0c;当你的包管理器发出警告时&#xff0c;请注意升级你的 Node 版本。 二、创…

支付确认订单页面实现

类似购物车页面&#xff0c;但是这里商品显示的是购物车选中的商品&#xff0c;所以cart要加下checked过滤&#xff1b; <!-- 收货地址 开始 --> <view class"revice_address_row"><view class"user_info"><view class"user_in…

Linux安全技术与iptables防火墙

一.安全技术&#xff1a; 入侵检测系统&#xff08;Intrusion Detection Systems&#xff09;&#xff1a;特点是不阻断任何网络访问&#xff0c;量化、定位来自内外网络的威胁情况&#xff0c;主要以提供报警和事后监督为主&#xff0c;提供有针对性的指导措施和安全决策依据,…

Topaz Photo AI for Mac v2.3.1 补丁版人工智能降噪软件无损放大

想要将模糊的图片变得更加清晰&#xff1f;不妨试试Topaz Photo AI for Mac 这款人工智能、无损放大软件。Topaz Photo AI for Mac 一款强大的人工智能降噪软件&#xff0c;允许用户使用复杂的锐化算法来提高图像清晰度&#xff0c;还包括肖像编辑选项&#xff0c;如面部重塑、…

企业计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒处理流程

由于网络技术的不断发展与应用&#xff0c;越来越多的企业开始依赖计算机技术来提高企业效率。然而&#xff0c;网络安全威胁无处不在&#xff0c;严重影响着企业计算机服务器中的数据安全。近期&#xff0c;云天数据恢复中心接到许多中大型企业的求助&#xff0c;企业的多台服…

2024-02-07(Sqoop,Flume)

1.Sqoop的增量导入 实际工作中&#xff0c;数据的导入很多时候只需要导入增量的数据&#xff0c;并不需要将表中的数据每次都全部导入到hive或者hdfs中&#xff0c;因为这样会造成数据重复问题。 增量导入就是仅导入新添加到表中的行的技术。 sqoop支持两种模式的增量导入&a…

Vulnhub靶机:hacksudoLPE

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;hacksudoLPE&#xff08;10.0.2.47&#xff09; 目标&#xff1a;获取靶机root权限和flag&#xff0c;该靶机是一个练习提权的靶场&#xff0c;主要以提…

Java 语法糖

Java 语法糖 switch 支持 String 与枚举自动装箱与拆箱泛型可变参数 ...枚举内部类断言for-each 语法糖指在计算机语言中添加的某种语法&#xff0c;这种语法对语言的功能并没有影响&#xff0c;但是更方便程序员使用 带有语法糖的代码一般不能直接翻译为汇编语言&#xff0c;J…