文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

用纯CSS3绘制乾坤八卦图

懒人小魔法师

懒人小魔法师

2024-04-23 22:57

关注

       乾坤八卦图衍生自中国古代的《河图》与《洛书》,伏羲根据燧人氏造设的这两幅星图所作。其形状经过抽象以后,成为对称感相当强的几何图形,无论是黑白两色还是形状,都非常地平衡和稳重。

用纯CSS3绘制乾坤八卦图_CSS3教程_图形绘制_CSS3代码_编程学习网

  不难发现,乾坤八卦图的形状均为圆形。而css3绘制圆的方法也很简单,设置圆角半径等于50%即可,所以绘制起来十分方便。

  大体结构就是两个半圆,左白右黑,然后上下分别绘制一个半径等于大圆一半的圆,上黑下白,最后加上两个圆点即可。

  总的来说,这个八卦图包括三层共6个元素,为了不导致混淆,本教程不打算使用伪元素。

  现在我们先来构建基础的html代码:

基础代码

  所有元素都包在big-circle里面,它们之间会相对重叠,所以需要设置相对定位,让内部元素使用绝对定位时以big-circle的左上角作为参考点。

  .big-circle{

  position:relative;

  width:200px;

  height:200px;

  }

  接下来,我们绘制左侧的半圆,整个圆我们可以用border-radius设置为50%。半圆的话,就需要有所区分,矩形的宽高比为1:2,右侧的两个角圆角半径为0。

  左侧半圆的边框颜色为黑色,背景为白色,

  总的CSS代码如下:

  .SEMi-circle-left{

  position:absolute;

  width:100px;

  height:200px;

  top:0px;

  left:0px;

  background:#fff;

  border:2px solid #000;

  -webkit-border-radius:100px 0px 0px 100px;

  -moz-border-radius:100px 0px 0px 100px;

  -o-border-radius:100px 0px 0px 100px;

  border-radius:100px 0px 0px 100px;

  }

  border-radius的4个圆角半径用英文空格分隔,依次为左上,右上,右下,左下(从左上开始顺时针数下来)。

  border-radius需要用不同前缀兼容不同的浏览器。

  运行效果如下图所示:

左侧的半圆

  类似地,右侧的样式如下。不同的部分已经用红色高亮标记出来了。

  .semi-circle-right{

  position:absolute;

  width:100px;

  height:200px;

  top:0px;

  left:100px;

  background:#000;

  border:2px solid #000;

  -webkit-border-radius:0px 100px 100px 0px;

  -moz-border-radius:0px 100px 100px 0px;

  -o-border-radius:0px 100px 100px 0px;

  border-radius:0px 100px 100px 0px;

  }

  运行效果如下图所示:

左右两侧半圆

  现在我们绘制上下两个圆。

  上面的圆样式如下:

  .small-circle-top{

  position:absolute;

  width:100px;

  height:100px;

  top:0px;

  left:50px;

  background:#000;

  -webkit-border-radius:50%;

  -moz-border-radius:50%;

  -o-border-radius:50%;

  border-radius:50%;

  }

  由于我们是绘制完整的圆,因此直接设置border-radius=50%即可,无需像前面那样需要分开设置。

  再次运行,效果如下图所示:

添加上边的圆

  看起来,下面的圆也没有任何问题了,只要改下位置和颜色即可。

  .small-circle-bottom{

  position:absolute;

  width:100px;

  height:100px;

  top:100px;

  left:50px;

  background:#fff;

  -webkit-border-radius:50%;

  -moz-border-radius:50%;

  -o-border-radius:50%;

  border-radius:50%;

  }

  运行效果如下图所示:

添加下边的圆

  好了,就差两个小圆点。方法跟绘制第2层的两个圆没有大异。

  .small-circle-bottom{

  position:absolute;

  width:100px;

  height:100px;

  top:100px;

  left:50px;

  background:#fff;

  -webkit-border-radius:50%;

  -moz-border-radius:50%;

  -o-border-radius:50%;

  -webkit-border-radius:50%;

  -moz-border-radius:50%;

  -o-border-radius:50%;

  border-radius:50%;

  }

  .circle-point-top{

  position:absolute;

  width:25px;

  height:25px;

  top:37.5px;

  left:87.5px;

  background:#fff;

  -webkit-border-radius:50%;

  -moz-border-radius:50%;

  -o-border-radius:50%;

  border-radius:50%;

  }

  再次运行,效果如下图所示:

添加两个小圆点

  细心的朋友可能会发现一个瑕疵,在八卦图的正下方,白色小圆和白色大半圆的衔接不是那么光滑,好像凸起来了一点点,这其实是大半圆那两个像素的边框所引起的,要修正这个小“bug”,我们不妨让半圆的高度减小两个像素吧,与此同时,半圆的宽度也应该减小1像素。

  .semi-circle-left{

  

  width:99px;

  height:198px;

  }

  .semi-circle-right{

  

  width:99px;

  height:198px;

  }

  运行效果如下图所示:

最终效果

  这样,一个标准的乾坤八卦图就绘制完成了。

  据说在古代,八卦图是除凶避灾的常用图案,又据说在现代,Web设计师最大的灾难就是无休止的加班。小编希望通过这篇八卦图教程,祝愿各位Web设计师日后都能在正常的工作时间内,完成老板交付给你们的任务。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     436人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     201人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     163人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     242人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     68人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯