当前位置: 首页 > news >正文

css手写奥运五环

完整代码

<!DOCTYPEhtml><htmllang="zh-CN"><head><!-- 文档类型声明 --><metacharset="UTF-8"><!-- 字符编码设置为UTF-8 --><metaname="viewport"content="width=device-width, initial-scale=1.0"><!-- 响应式设计设置 --><title>奥运五环</title><!-- 页面标题 --></head><body><!-- 奥运五环容器 --><divclass="olympic-rings"><!-- 蓝色环 --><divclass="ring blue"></div><!-- 黑色环 --><divclass="ring black"></div><!-- 红色环 --><divclass="ring red"></div><!-- 黄色环 --><divclass="ring yellow"></div><!-- 绿色环 --><divclass="ring green"></div></div></body><stylelang="css">/* 全局样式重置 */*{margin:0;padding:0;box-sizing:border-box;}/* 页面主体样式 */body{display:flex;/* 使用flex布局 */justify-content:center;/* 水平居中 */align-items:center;/* 垂直居中 */height:100vh;/* 高度为视口高度 */background-color:#f5f5f5;/* 背景颜色 */}/* 奥运五环容器:相对定位,用于承载五个环形元素 */.olympic-rings{position:relative;/* 相对定位,便于子元素绝对定位 */width:400px;/* 容器宽度,确保五环水平排布空间 */height:200px;/* 容器高度,确保上下两行环的垂直空间 */transform-style:preserve-3d;/* 保持3D变换效果,为后续可能的3D动画预留 */}/* 环形基础样式 */.ring{width:120px;/* 环的宽度 */height:120px;/* 环的高度 */border:10px solid;/* 环的边框宽度和样式 */border-radius:50%;/* 圆角设置为50%,形成圆形 */position:absolute;/* 绝对定位,便于精确定位每个环 */}/* 蓝色环样式 */.ring.blue{border-color:#0085ca;/* 蓝色环的颜色 */top:0;/* 顶部位置 */left:0;/* 左侧位置 */}/* 黄色环样式 */.ring.yellow{border-color:#fdb813;/* 黄色环的颜色 */top:60px;/* 顶部位置(第二行) */left:70px;/* 左侧位置 */transform:rotateX(6deg);/* X轴旋转,增加立体感 */transform-origin:center 25%;/* 旋转原点设置 */}/* 黑色环样式 */.ring.black{border-color:#000000;/* 黑色环的颜色 */top:0;/* 顶部位置 */left:130px;/* 左侧位置 */}/* 绿色环样式 */.ring.green{border-color:#00b140;/* 绿色环的颜色 */top:60px;/* 顶部位置(第二行) */left:200px;/* 左侧位置 */transform:rotateX(6deg);/* X轴旋转,增加立体感 */transform-origin:center 25%;/* 旋转原点设置 */}/* 红色环样式 */.ring.red{border-color:#e6193c;/* 红色环的颜色 */top:0;/* 顶部位置 */left:260px;/* 左侧位置 */}</style></html>

实现效果

主要使用 transform-style: preserve-3d; /* 保持3D变换效果,为后续可能的3D动画预留 */ transform: rotateX(6deg); /* X轴旋转,增加立体感 */ transform-origin: center 25%; /* 旋转原点设置 */

奥运五环代码要点讲解

1. 整体结构

这段代码使用了HTML5和内联CSS实现了奥运五环的经典设计,主要包含两个部分:

  • HTML结构:创建了基本的文档结构和五环容器
  • CSS样式:实现了五环的布局、样式和交互效果

2. HTML结构要点

<divclass="olympic-rings"><divclass="ring blue"></div><divclass="ring black"></div><divclass="ring red"></div><divclass="ring yellow"></div><divclass="ring green"></div></div>
  • 使用了语义化的class命名,清晰标识每个元素的作用
  • 五环的顺序按照蓝、黑、红、黄、绿排列,符合标准奥运五环的布局
  • 每个环都是一个独立的div元素,便于单独控制样式

3. CSS样式要点

3.1 全局样式重置

*{margin:0;padding:0;box-sizing:border-box;}
  • 重置了所有元素的默认边距和内边距
  • 使用box-sizing: border-box确保元素尺寸计算方式一致

3.2 页面布局

body{display:flex;justify-content:center;align-items:center;height:100vh;background-color:#f5f5f5;}
  • 使用Flexbox布局实现页面居中
  • 设置height: 100vh使页面占满整个视口高度
  • 选择了浅灰色背景,使五环更加突出

3.3 五环容器

.olympic-rings{position:relative;width:400px;height:200px;transform-style:preserve-3d;}
  • 使用position: relative作为子元素绝对定位的参考
  • 固定容器尺寸,确保五环布局稳定
  • 添加transform-style: preserve-3d为后续可能的3D动画做准备

3.4 环形基础样式

.ring{width:120px;height:120px;border:10px solid;border-radius:50%;position:absolute;}
  • 核心技术点:使用border-radius: 50%创建圆形
  • 固定环的尺寸为120x120px,边框宽度10px
  • 使用position: absolute实现精确定位

3.5 颜色环样式

.ring.blue{border-color:#0085ca;top:0;left:0;}.ring.yellow{border-color:#fdb813;top:60px;left:70px;transform:rotateX(6deg);transform-origin:center 25%;}/* 其他颜色环类似 */
  • 使用官方指定的奥运五环颜色代码
  • 通过topleft属性精确控制每个环的位置
  • 为黄环和绿环添加了transform: rotateX(6deg)增加立体感
  • 使用transform-origin调整旋转中心点

4. 技术难点与解决方案

4.1 五环排列布局

难点:实现奥运五环的经典交错排列,确保环与环之间的正确交叉关系

解决方案

  • 使用绝对定位精确控制每个环的坐标
  • 第一行(蓝、黑、红)和第二行(黄、绿)交错排列
  • 通过调整topleft值实现环与环的重叠效果

4.2 立体感实现

难点:让平面的五环看起来更有立体感

解决方案

  • 为第二行的环(黄、绿)添加了X轴旋转
  • 调整旋转原点,使效果更加自然
  • 使用transform-style: preserve-3d保持3D空间关系

4.3 颜色标准

难点:确保使用正确的奥运五环官方颜色

解决方案

  • 使用了国际奥委会指定的标准颜色代码:
    • 蓝色:#0085ca
    • 黄色:#fdb813
    • 黑色:#000000
    • 绿色:#00b140
    • 红色:#e6193c

5. 代码优化建议

  1. 分离CSS:将内联CSS移至外部样式文件,提高代码可维护性
  2. 添加响应式设计:使用媒体查询确保在不同屏幕尺寸下的显示效果
  3. 优化定位计算:可以使用CSS变量统一管理环的尺寸和间距
  4. 添加动画效果:可以为五环添加简单的入场动画,增强视觉效果
  5. 提高可访问性:添加适当的ARIA属性和语义化标签

6. 总结

这段代码成功实现了奥运五环的经典设计,通过以下技术点:

  • HTML5语义化结构
  • CSS Flexbox布局
  • 绝对定位和精确坐标计算
  • 边框圆角创建圆形
  • 3D变换增加立体感
  • 官方标准颜色应用

最终效果符合奥运五环的视觉标准,同时代码结构清晰,易于理解和维护。

http://www.zskr.cn/news/1455632.html

相关文章:

  • 基于Seeeduino XIAO与Grove模块的环境监测系统开发实践
  • Joy-Con Toolkit高级配置与性能优化技术方案
  • 2026年嘉德实创冷库服务商推荐榜单:医药GSP冷库、食品速冻冷库、冷链物流系统与温湿度监测工程实力品牌解析 - 品牌企业推荐师(官方)
  • 26NOI内训day6 西安高新一中
  • 基于IMU传感器与Python的单摆周期精确测量:从硬件搭建到STFT分析
  • 异步音乐生成API架构深度解析与实战集成指南
  • AI工具如何接管企业搜索?揭秘2024头部公司已验证的7步整合路径
  • 从电磁感应到无线充电:DIY线圈点亮LED实验全解析
  • OpenAI万亿IPO前夜豪赌AI基建,谷歌、英伟达等巨头跟风,普通人要为此买单?
  • 宇树科技冲刺“具身智能第一股”,机器人产业将如何重塑半导体产业链?
  • 破局期刊撰稿投稿难题:依托 Paperxie 期刊论文专属创作模块,高效打通从选题到成文全链路
  • Java反射的意义
  • 2026 年中国算力市场分化,芜湖如何破局轻资产运营、国产算力替代与产业生态培育?
  • ES|QL助力LLM工作负载调试:解决延迟、成本与GPU饱和问题
  • 向量空间JBoltAI:包装合规审核的AI解法
  • 终极免费方案:3步解锁Wand专业版完整功能,开启游戏修改新纪元
  • XZ1813,120VIN,外置MOS,异步降压芯片
  • 2026库尔勒汽车维修哪家靠谱?本地15年老店多维度实测横向测评 - GrowthUME
  • # [特殊字符] Linux 学习笔记(一):环境搭建与 C 语言开发初体验
  • SteamBot架构设计深入解析:5大核心模块实现自动化交易最佳实践
  • 2026年信创协同系统哪家的靠谱?一文搞懂你该怎么选
  • 探讨在不同物理显示媒介上优化响应式栅格系统设计规范色彩空间与视觉对比度的规范体系
  • 推理篇第12节:TensorRT-LLM(二)——KV Cache与PageAttention优化
  • 大模型应用开发必读:OpenAI 接口格式全方位详解与生产最佳实践
  • Pearcleaner:macOS应用彻底清理的终极指南,3步告别残留文件
  • 如何通过Obsidian Border主题实现高效知识管理与界面定制:终极指南
  • Linux - Doris
  • 苏州本地连锁防水修缮品牌有哪些?2026实力服务商权威盘点 - 苏易修缮
  • 【Robotics】半小时入门具身智能之Win11下IsaacSim环境搭建
  • 智能任务调度系统设计白皮书(2024企业级AI Ops标准草案首次公开)