一个简单的HTML文档,用于在网页上展示一个中国国旗图案

news2024/10/8 16:52:31

上述代码是一个简单的HTML文档,用于在网页上展示一个包含星星的中国国旗图案。该代码由HTML和CSS两部分组成,下面是对这两部分的详细解释说明:


  • <!DOCTYPE html>: 声明文档类型为HTML5。
  • <html lang="en">: 定义HTML文档的根元素,并设置语言属性为英语。
  • <head>: 包含文档的元数据,如字符集、视口设置和标题。
    • <meta charset="UTF-8" />: 设置文档的字符编码为UTF-8。
    • <meta name="viewport" content="width=device-width, initial-scale=1.0" />: 确保页面在移动设备上正确显示。
    • <title>Document</title>: 设置文档的标题。
  • <body>: 包含文档的可见内容。
    • <div class="flag">: 定义一个包含整个国旗图案的容器。
      • <div class="sfb"></div>: 星星的底部部分,通过CSS绘制。
      • <div class="sfs one"></div>: 第一个星星,通过CSS绘制。
      • <div class="sfs two"></div>: 第二个星星,通过CSS绘制。
      • <div class="sfs three"></div>: 第三个星星,通过CSS绘制。
      • <div class="sfs four"></div>: 第四个星星,通过CSS绘制。

CSS部分

CSS部分定义了国旗和星星的样式,包括大小、颜色、位置和旋转角度等。

  • :root: 定义全局变量,用于控制国旗和星星的尺寸、颜色等。

    • --width--height--grid--radius--sin18--cos18--tan36: 定义各种尺寸和数学常量。
    • --bg-color--star-color: 定义国旗背景和星星的颜色。
    • --OL--EL--GL: 计算星星各个部分的长度。
  • .flag: 设置国旗容器的样式,包括尺寸、背景颜色和居中对齐。

  • .sfb: 绘制星星的底部部分,使用CSS的border属性创建三角形,并通过::before::after伪元素添加额外的三角形以形成完整的星星底部。

  • .sfs: 定义单个星星的样式,同样使用CSS的border属性创建三角形,并通过::before::after伪元素添加额外的三角形。

  • .one.two.three.four: 分别定义四个星星的位置和旋转角度,使它们以正确的形状和位置排列在国旗上。

总的来说,这段代码通过纯CSS技巧(主要是利用border属性创建三角形)来绘制一个包含星星的美国国旗图案,无需使用任何图像文件。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="flag">
       
      <div class="sfb"></div>
       
      <div class="sfs one"></div>
       
      <div class="sfs two"></div>
       
      <div class="sfs three"></div>
       
      <div class="sfs four"></div>
    </div>
    <style>
      * {
        border-width: 0;
      }

      :root {
        --width: 500px;
        --grid: calc(var(--height) / 2 / 10);
        --radius: calc(var(--grid) * 3);
        --sin18: 0.3090169943749474;
        --cos18: 0.9510565162951535;
        --tan36: 0.7265425280053608;
        --height: calc(var(--width) * 2 / 3);
        --bg-color: #f40002;
        --star-color: #faf408;
        --OL: calc(var(--radius) * var(--sin18));
        --EL: calc(var(--radius) * var(--cos18));
        --GL: calc(var(--EL) * var(--tan36));
      }

      .flag {
        position: relative;
        width: var(--width);
        height: var(--height);
        background: var(--bg-color);
        margin: 0 auto;
      }

      .sfb {
        position: absolute;
        top: calc(5 * var(--grid) - var(--OL));
        left: calc(5 * var(--grid) - var(--EL));
        border-color: var(--star-color) transparent transparent;
        border-width: var(--GL) var(--EL);
        border-style: solid;
        width: 0;
        height: 0;
      }

      .sfb::before {
        position: absolute;
        top: calc(var(--GL) * -1);
        left: calc(var(--EL) * -1);
        border-color: var(--star-color) transparent transparent;
        border-width: var(--GL) var(--EL);
        border-style: solid;
        content: "";
        display: block;
        width: 0;
        height: 0;
        transform: rotate(72deg);
        transform-origin: var(--EL) var(--OL);
      }

      .sfb::after {
        position: absolute;
        top: calc(var(--GL) * -1);
        left: calc(var(--EL) * -1);
        border-color: var(--star-color) transparent transparent;
        border-width: var(--GL) var(--EL);
        border-style: solid;
        transform: rotate(-72deg);
        transform-origin: var(--EL) var(--OL);
        content: "";
        display: block;
        width: 0;
        height: 0;
      }

      .sfs {
        position: absolute;
        width: 0;
        height: 0;
        transform-origin: calc(var(--EL) / 3) calc(var(--OL) / 3);
        border-color: var(--star-color) transparent transparent;
        border-width: calc(var(--GL) / 3) calc(var(--EL) / 3);
        border-style: solid;
      }

      .sfs::before {
        position: absolute;
        top: calc(var(--GL) * -1 / 3);
        left: calc(var(--EL) * -1 / 3);
        border-color: var(--star-color) transparent transparent;
        border-width: calc(var(--GL) / 3) calc(var(--EL) / 3);
        border-style: solid;
        content: "";
        display: block;
        width: 0;
        height: 0;
        transform: rotate(72deg);
        transform-origin: calc(var(--EL) / 3) calc(var(--OL) / 3);
      }

      .sfs::after {
        position: absolute;
        top: calc(var(--GL) * -1 / 3);
        left: calc(var(--EL) * -1 / 3);
        height: 0;
        border-color: var(--star-color) transparent transparent;
        border-width: calc(var(--GL) / 3) calc(var(--EL) / 3);
        border-style: solid;
        content: "";
        display: block;
        width: 0;
        transform: rotate(-72deg);
        transform-origin: calc(var(--EL) / 3) calc(var(--OL) / 3);
      }

      .one {
        top: calc(2 * var(--grid) - var(--OL) / 3);
        left: calc(10 * var(--grid) - var(--EL) / 3);
        transform: rotate(-48.96deg);
      }

      .two {
        top: calc(4 * var(--grid) - var(--OL) / 3);
        left: calc(12 * var(--grid) - var(--EL) / 3);
        transform: rotate(-26.13deg);
      }

      .three {
        top: calc(7 * var(--grid) - var(--OL) / 3);
        left: calc(12 * var(--grid) - var(--EL) / 3);
        transform: rotate(-2.06deg);
      }

      .four {
        top: calc(9 * var(--grid) - var(--OL) / 3);
        left: calc(10 * var(--grid) - var(--EL) / 3);
        transform: rotate(20.66deg);
      }
    </style>
  </body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在VSCode上运行C/C++代码

诸神缄默不语-个人CSDN博文目录 我是Win10&#xff0c;其他系统仅供参考。 文章目录 1. 下载所需插件2. 安装编译器3. 不借助编辑器的cpp代码执行3. 建立VSCode cpp项目3.1 c_cpp_properties.json3.2 settings.json3.3 tasks.json 4. 运行C代码参考资料 1. 下载所需插件 2. 安…

记一次N5105 NAS功耗测量

记一次N5105 NAS功耗测量 一、设备说明 HA500机器&#xff0c;N5105CPU&#xff0c;32GB内存。unraid最新6.12.13系统硬盘有一根500G M2硬盘和一个512G sata接口ssd硬盘&#xff0c;用于组成zfs raid 1&#xff0c;作为cache盘位。另外有三个4T机械硬盘&#xff0c;组成21的形…

鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景

DevEco Studio 是鸿蒙生态中的集成开发环境(IDE)&#xff0c;而 DevEco Testing 工具则是专门用于测试鸿蒙应用的强大工具。本文将详细介绍 DevEco Testing 中几个常用的测试功能及其使用场景&#xff0c;并给出相应的代码示例。 【1】安装应用 使用场景&#xff1a;在鸿蒙系统…

imx6q 的 header.s的理解

首先是 非设备树的。 就是这三个文件。 header 是配置文件。 .c 文件应该是对这个文件的操作。 那么 header 怎么生成呢? 它这里调整好的 应该参数 应该就是 这个 header.s 了。 但是 这个程序 是 设备树的 流程 ,不知道 对于 非设备树 是不是 适用。 然后是设备树的。 设…

基于Arduino的遥控自平衡小车

基于Arduino的遥控自平衡小车 一、项目简介二、所需材料三、理论支持四、外壳设计五、线路连接六、检查MPU6050连接七、烧录库八、PID控制设置九、设置传感器参数十、无线移动控制十一、超声波模块 一、项目简介 一个使用Arduino Nano、MPU-6050以及便宜的6伏直流齿轮电机的自…

Vue中使用富文本编辑框的实践与探索

在Web开发中&#xff0c;富文本编辑框是一个常见的功能。本文将介绍如何在Vue项目中集成和使用富文本编辑框&#xff0c;并分享一些实践经验。 一、为什么需要富文本编辑框 在开发网站、博客、论坛等应用时&#xff0c;用户往往需要编辑和发布带格式的文本内容。传统的文本输…

分布式事务seata AT和XA性能对比

1. AT模式和XA模式性能对比&#xff1a; AT的阻塞是阻塞在了业务服务层&#xff0c;全局锁。 而XA模式是阻塞在了数据库&#xff0c;对数据库的性能影响很大。 肯定是优选AT&#xff0c;可以提升数据库的性能。 &#xff08;由于AT模式数据库事务阻塞小&#xff0c;那么同一…

公司监控电脑都能监控哪些信息?深刻回答,一文详解!

在当今数字化办公环境中&#xff0c;公司监控电脑已成为许多企业保障信息安全、提升工作效率的重要手段。 然而&#xff0c;这种监控行为也引发了关于员工隐私权的广泛讨论。 本文将深入探讨公司监控电脑所能监控的信息范围&#xff0c;以及如何在保障企业安全与尊重员工隐私…

omron fins 内存区域写入(MEMORY AREA WRITE)

1. 完整的代码如下&#xff1a; import socket import binasciiclass Omron:def __init__(self, ip, port9600):self.ip ip # PLC的IP地址self.port port # PLC的端口&#xff0c;默认为9600def send_receive_fins(self):with socket.socket(socket.AF_INET, socket.SOCK_…

某个应用的CPU使用率居然达到100%,我该怎么办?

摘至https://learn.lianglianglee.com/ CPU使用率 Linux 作为一个多任务操作系统&#xff0c;将每个 CPU 的时间划分为很短的时间片&#xff0c;再通过调度器轮流分配给各个任务使用&#xff0c;因此造成多任务同时运行的错觉。 为了维护 CPU 时间&#xff0c;Linux 通过事先定…

使用标签实现MyBatis的基础操作

目录 前言 1.配置MyBatis⽇志打印 2.参数传递 2.1 #{} 和 ${}区别 2.2传递多个参数 3.增删改查 3.1增(Insert) 3.2删(Delete) 3.3改(Update) 3.4查(Select) 前言 接下来我们会使用的数据表如下&#xff1a; 对应的实体类为&#xff1a;UserInfoMapper 所有的准备工作都…

全局数据在Python包中模块间管理方法探讨

在开发大型 Python 应用程序时&#xff0c;有时需要多个模块共享和管理全局数据。如何优雅地在 Python 包内的不同模块间共享全局数据是一个常见的设计问题。我们希望避免全局变量的混乱和难以维护的代码&#xff0c;但同时能够安全、高效地管理这些共享数据。 下面我们将探讨…

低代码赋能汽车制造产业链场景系列

当前汽车行业数字化智能化转型浪潮下&#xff0c;整车及其上下游产业链的协同创新正变得至关重要。头部车企与上下游供应链企业正逐步解决在生产管理、业务互通、系统集成等方面的痛点与挑战。电动化、智能化、网联化作为汽车产业的三大趋势&#xff0c;正共同推动未来汽车产业…

MS SQL Server 实战 统计与汇总重复记录

目录 需求 范例运行环境 数据样本设计 功能实现 上传EXCEL文件到数据库 分组统计 SQL 语句 分组汇总 SQL 语句 having 语句过滤最终统计结果 小结 需求 在日常的数据管理应用中&#xff0c;统计和汇总重复记录的情况是经常遇到的一个问题&#xff0c;然后我们会根据统…

文字转语音软件哪个好?这里告诉你

在英语学习的众多环节中&#xff0c;听力练习无疑是至关重要的一环。 然而&#xff0c;平时缺乏英语环境&#xff0c;如何高效地利用身边的英语材料进行听力训练呢&#xff1f;这时&#xff0c;英语文字转语音工具就很重要了&#xff01; 今天&#xff0c;就为大家介绍五款优…

【C++】认识匿名对象

文章目录 目录 文章目录前言一、对匿名对象的解读二、匿名对象的对象类型三、匿名对象的使用总结 前言 在C中&#xff0c;匿名对象是指在没有呗命名的情况下创建的临时对象。它们通常在单个语句中执行一系列操作或调用某个函数&#xff0c;并且不需要将结果存放进变量中。 匿名…

常用动词敬语形式大揭秘,柯桥零基础日语培训

一、常用动词的敬语形式 1. する&#xff08;做&#xff09; • 尊敬语&#xff1a; なさる (Nasaru) 例&#xff1a;社長はよく運動をなさいます。 &#xff08;社长经常锻炼。&#xff09; • 谦逊语&#xff1a; いたす (Itasu) 例&#xff1a;この仕事は私がいたします。 &…

Java解析图形mdb矢量mdb

Java解析图形mdb矢量mdb 背景&#xff1a;项目中需要解析图形mdb&#xff0c;同事积累下的代码无法读取复杂图形&#xff1b;终于在某位大佬的博客下发现新的 解析方法&#xff0c;特此整理记录下。原理&#xff1a;jackcess&#xff08;assess提供解析mdb属性&#xff09;、es…

C++模拟实现二叉搜索树

目录 1.二叉搜索树的概念 2.二叉搜索树的性能分析 3.二叉搜索树的结构和中序遍历 3.1二叉搜索树中节点的结构 3.2二叉搜索树的结构 3.3中序遍历 4.二叉搜索树的插入 5.二叉搜索树的查找 6.二叉树搜索树的删除 7. 二叉搜索树的默认成员函数 8.参考代码 9.二叉搜…

常见的图像处理算法:Canny边缘检测

一、Canny边缘检测算子的由来 Canny 边缘检测算子是一种多级检测算法。1986 年由 John F. Canny 提出&#xff0c;同时提出 了边缘检测的三大准则&#xff1a; 1、低错误率的边缘检测&#xff1a;检测算法应该精确地找到图像中的尽可能多的边缘&#xff0c;尽可能的减少漏检…