CSS3绘制六边形的简单实现


Posted in HTML / CSS onAugust 25, 2016

因为很简单,所以先总结一下:使用CSS3绘制六边形主要使用伪类:before和:after在源元素之前和之后再绘制两个元素,并利用css3的边框样式,将这两个元素变成三角形放置在源元素的两端即可。

(因为之前在生物公司工作过,觉得六边形更贴近生物分子、基因等概念,包括我们在网上搜索关于生物分子、基因等图片,好多也有六边形的样式,所以那时候在页面做一些功能性的导航或Tag,都会觉得六边形更贴近一些)。

完整的页面效果如下图:(其实是多个六边形定位成这样子的。当然,也可以设置不同六边形的颜色,这样就可以更好的区分不同的模块功能了)。

CSS3绘制六边形的简单实现

 

我们可以单独提出一个六边形分析一下,如下图:

CSS3绘制六边形的简单实现

知道了分析思路,我们可以先了解一下如何绘制三角形,网上的列子也很多,不过没有使用过的童鞋不用找了,下面也给出代码和示例,如下:

效果图:

CSS3绘制六边形的简单实现

CSS代码:

CSS Code复制内容到剪贴板
  1. .arrow{   
  2.               displayinline-block;   
  3.               width:0px;   
  4.               height0px;   
  5.               border-stylesolid;   
  6.               border-width100px; //与paddingmargin属性类似,顺序为上、右、下、左   
  7.               border-colorred blue orange gray;

    //顺序为上、右、下、左}  

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <div class="arrow"></div>  

如上图所说,利用border边框属性,填充我们不想要的颜色为透明色,即可得到某一部分三角形,代码和图片效果如下。

效果图:(左边的三角形是我们需要的,其它的设置为了透明色)

CSS3绘制六边形的简单实现

CSS代码:

CSS Code复制内容到剪贴板
  1. .arrow{   
  2.               displayinline-block;   
  3.               width:0px;   
  4.               height0px;   
  5.               border-bottom100px solid transparent;

    //设置透明色   

  6.               border-top100px solid transparent;

     //设置透明色   

  7.               border-right100px solid transparent;

    //设置透明色   

  8.               border-left100px solid gray;   
  9.   
  10.           }  

HTML代码:

XML/HTML Code复制内容到剪贴板
  1. <div class="arrow"></div>  

Okay。知道了如何画三角形,在利用CSS伪类:before和:after就可以完成我们想要绘制的六边形了。

:before是在元素的前面插入内容

:after是在元素的后面插入内容

如果我们想要插入一些文字性的内容可以在它的 content属性中录入需要展示的文字,例如 content:"HELLO WORLD",不过我们的例子是不需要展示额外信息的。我们只是需要将before和after这两个伪元素变成三角形放置到固定位置即可。

给出完整的代码如下:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head lang="en">  
  4.     <meta charset="UTF-8">  
  5.     <title></title>  
  6.     <style type="text/css">  
  7.   
  8.      .sharp:before{   
  9.          content:"";

    //不需要展现文字等内容,所以设置为空字符   

  10.          width:0px;   
  11.          border-bottom:80px solid transparent;   
  12.          border-top:80px solid transparent;   
  13.          border-right:40px solid #6c6;   
  14.          position:absolute;   
  15.          left:-40px;   
  16.          top:0px;   
  17.      }   
  18.      .sharp{   
  19.          min-width:100px;   
  20.          height:160px;   
  21.          background:#6c6;   
  22.          display: inline-block;   
  23.          position: absolute;   
  24.          line-height: 160px;   
  25.          color:#FFFFFF;   
  26.          font-size: 20px;   
  27.          text-align: center;   
  28.      }   
  29.      .sharp:after{   
  30.          content:"";

    //不需要展现文字等内容,所以设置为空字符   

  31.          width:0px;   
  32.          border-bottom:80px solid transparent;   
  33.          border-top:80px solid transparent;   
  34.          border-left-width:40px;   
  35.          border-left-style: solid;   
  36.          border-left-color:#6c6;   
  37.          position:absolute;   
  38.          right:-40px;   
  39.          top:0px;   
  40.      }   
  41.         #sharpContainer{   
  42.             width:100%;   
  43.             height: 600px;   
  44.         }   
  45.         #sharpContainer .center{   
  46.   
  47.             top:200px;   
  48.             left:300px;   
  49.         }   
  50.          #sharpContainer .top{   
  51.              top:20px;   
  52.              left:300px;   
  53.          }   
  54.          #sharpContainer .top-left{   
  55.              top:110px;   
  56.              left:140px;   
  57.          }   
  58.          #sharpContainer .top-right{   
  59.              top:110px;   
  60.              left:460px;   
  61.          }   
  62.          #sharpContainer .bottom{   
  63.              top:380px;   
  64.              left:300px;   
  65.          }   
  66.          #sharpContainer .bottom-left{   
  67.              top:290px;   
  68.              left:140px;   
  69.          }   
  70.          #sharpContainer .bottom-right{   
  71.              top:290px;   
  72.              left:460px;   
  73.          }   
  74.   
  75.     </style>  
  76. </head>  
  77. <body>  
  78.   
  79. <div id="sharpContainer">  
  80.     <div class="sharp center">  
  81.   
  82.     </div>  
  83.     <div class="sharp top">  
  84.   
  85.     </div>  
  86.     <div class="sharp top-left">  
  87.   
  88.     </div>  
  89.     <div class="sharp top-right">  
  90.   
  91.     </div>  
  92.     <div class="sharp bottom">  
  93.   
  94.     </div>  
  95.     <div class="sharp bottom-left">  
  96.   
  97.     </div>  
  98.     <div class="sharp bottom-right">  
  99.   
  100.     </div>  
  101. </div>  
  102.   
  103.   
  104. </body>  
  105. </html>  

六边形绘制其实是很简单的效果,只要我们了解如何绘制三角形和使用:before,:after伪类样式即可。以后我们在项目中就可以加入更多的不规则的图形了。

以上这篇CSS3绘制六边形的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
css3隔行变换色实现示例
Feb 19 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
May 07 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
Oct 16 HTML / CSS
程序设计HTML5 Canvas API
Apr 08 HTML / CSS
html5 css3网站菜单实现代码
Dec 23 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
Dec 10 HTML / CSS
html2 canvas生成清晰的图片实现打印功能
Sep 23 HTML / CSS
Html5 canvas画图白板踩坑
Jun 01 HTML / CSS
css display table 自适应高度、宽度问题的解决
May 07 HTML / CSS
CSS3实现列表无限滚动/轮播效果
Jun 23 HTML / CSS
css3 文字断裂效果
Apr 22 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
Aug 25 #HTML / CSS
CSS3实现鼠标悬停显示扩展内容
Aug 24 #HTML / CSS
利用CSS3实现开门效果实例源码
Aug 22 #HTML / CSS
纯CSS3单页切换导航菜单界面设计的简单实现
Aug 16 #HTML / CSS
canvas之万花筒效果的简单实现(推荐)
Aug 16 #HTML / CSS
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
Aug 15 #HTML / CSS
css3 media 响应式布局的简单实例
Aug 03 #HTML / CSS
You might like
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
python实现的一个火车票转让信息采集器
2014/07/09 Python
用map函数来完成Python并行任务的简单示例
2015/04/02 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
详解python持久化文件读写
2019/04/06 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
Python序列化pickle模块使用详解
2020/03/05 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
台湾专柜女包:KINAZ
2019/12/26 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
学生周末长期请假条
2014/02/15 职场文书
艺术节主持词
2014/04/02 职场文书
长城导游词400字
2015/01/30 职场文书
优秀大学生自荐信
2015/03/26 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
特种设备安全管理制度
2015/08/06 职场文书
PHP实现两种排课方式
2021/06/26 PHP
详解在OpenCV中如何使用图像像素
2022/03/03 Python
Python软件包安装的三种常见方法
2022/07/07 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers