css六边形插入图片蜂巢幻灯代码,CSS 实现蜂巢/六边形图集
CSS 实现蜂巢/六边形图集
不知道为什么,UI 很喜欢设计蜂巢效果(摊手)
一、实现六边形
首先用传统的方式来分析一下六边形
可以拆分成三个矩形,每个矩形旋转正负 60°得到其它两个矩形
由此可以设计出基本的 HTML 结构
矩形的宽高先随便设置,后面组件化的时候再计算其关系,通过 props 设置
然后设置 CSS 样式
.w-comb{background-color:#e4e4e4;display:inline-block;position:relative;
}.w-comb-sub1,
.w-comb-sub2{background-color:#e4e4e4;position:absolute;width:inherit;height:inherit;
}.w-comb-sub1{transform:rotate(-60deg);
}.w-comb-sub2{transform:rotate(60deg);
}
一个六边形就完成了
不过这只是传统的方式,如果不考虑兼容性问题,可以直接使用 clip-path 画一个六边形
.w-comb{clip-path:polygon(
0 25%,
50% 0,
100% 25%,
100% 75%,
50% 100%,
0 75%
);
}
非常简单粗暴!不需要子节点不需要旋转,只要一行代码,六边形带回家!
二、设置尺寸
实际的应用场景通常都是一堆六边形拼在一起,所以需要将单个六边形处理为组件
首先的问题就是,如何设置六边形的尺寸,这需要用一下初中学到的数学知识
经过计算,当矩形的长为 x 的时候,宽(边长 a )为
对角线 b 为
然后就能规定六边形的尺寸
如果是三个矩形旋转而成的传统方案:
// 传统方案
const RADICAL_3 = 1.7320508;const Comb = (props) =>{const { className } =props;const width = props.size || 80;const height = Math.ceil(width /RADICAL_3);return(
width,
height,
}}>
)
}
如果是直接使用 clip-path 绘制的六边形:
//clip-path
const RADICAL_3 = 1.7320508;const Comb = (props) =>{const { className } =props;const width = props.size || 80;const height = 2 * Math.ceil(width /RADICAL_3);return(
width,
height,
}}>
)
}
三、排列蜂巢
定义一个 spacing 字段,用来设置 margin-right,然后排列出一排六边形
再生成第二排的时候,需要调整一下 top 和 left
left 为矩形长 ( x ) 的一半(这是基础偏移量,实际需要的距离在这个数字上增加)
而 top 则为六边形边长 ( a ) 的一半的一半(基础偏移量)
后面每一行的 top 都会增加,而 left 仅在偶数行生效
四、添加内容
在传统方案中,是以横向的矩形为基础,所以六边形的内容可以直接写在矩形里
原文链接:https://www.cnblogs.com/wisewrong/p/12202197.html
如有疑问请与原作者联系
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
css六边形插入图片蜂巢幻灯代码,CSS 实现蜂巢/六边形图集相关推荐
- html如何载入图片,CSS如何插入图片?
在CSS中,可以使用background-image属性或background属性来插入图片.background-image属性或background属性可以为元素设置背景图像.初始背景图像(原图像 ...
- html中 怎么加入图片,css怎么插入图片?
在前端页面的开发中,插入图片的方法有两种:使用img标签插入图片,使用background属性和background-image属性插入背景图片.下面本篇文章就来给大家介绍一下CSS backgrou ...
- 如何html在页面插入图片,css怎么插入图片?
在前端页面的开发中,插入图片的方法有两种:使用img标签插入图片,使用background属性和background-image属性插入背景图片.下面本篇文章就来给大家介绍一下CSS backgrou ...
- css六边形插入图片蜂巢幻灯代码,纯css绘制蜂巢六边形效果
html> CSS3 实现六边形图片展示效果 body, div, img, ul, li { margin: 0; padding: 0; } body { font-size: 12px; ...
- css中两行图片整齐排布,css 标题一行图片 两行文字的排列方法以及相关问题处理...
今天就遇到了这么一个效果,代码原理比较简单就是图片float:left;,但是如果在做一个比较复杂的模板时,有可能遇到很多问题,使标题文字不能和图片对齐. 今天遇到一个问题,错误效果如下 正确显示应为 ...
- css中在图片上加透明,css 给图片添加滤镜效果,透明层毛玻璃效果
我们用的第一个滤镜是sepia(),他会给图片增加一整降饱和度的橙色染色效果 原图 添加sepia滤镜的效果 img{ width:100%; transition: .5s filter; filt ...
- css中设置图片旋转45度,css 实现缓和变量,鼠标悬停时元素旋转45度动画
可重复使用的变数transition-timing-function 属性,比内置更强大ease ,ease-in ,ease-out 和ease-in-out . HTML CSS :root { ...
- css如何让图片均匀分布,如何在CSS中均匀分布?
我建议使用grid 960系统或类似的东西.网格960使用12列网格行布局,均匀分布直接div.这非常灵活,因为您可以使用许多不同的组合.它实现了你所追求的.希望这会有所帮助. CSS:强> . ...
- css怎么设置图片卷角效果,CSS设计教程:轻松实现卷角效果
我们将做成这样: Step 1 我们将开始制作内容框的头部, 创建一个新图层命名为header, 然后设置前景色为#818283, 现在抓取一个矩形(262x27), 确保你设置为'填充像素',然后创 ...
最新文章
- object标签与embad掉钱_使用object或embed标签来播放SWF文件
- Android中有关数据库SQLite的介绍
- C++中实现回调机制的几种方式
- jQuery综合案例——打地鼠(教学版本·附源码)
- 设置网格_设置一个自动运行网格条件单
- indexOf、lastIndexOf、substring等详解
- php携程语比,PHP 协程
- linux安装 lr agent
- C++primer 6.7节练习
- 亲民地理第39期-佛山(3)千灯湖
- 显示器接口针脚定义(D-sub15)
- “梧桐杯”中国移动大数据应用创新大赛 - 智慧金融赛道Baseline
- 解决zing生成二维码时二维码太小、白框太大的问题
- linux的man命令功能,Linux中的MAN命令
- 什么是索引,索引的优缺点
- 微信小程序基础库版本与微信版本对应关系
- Git安装、配置和使用
- 面对找不到工作的困难,小伙选择创业开酒吧,月收入竟达到了6万
- IE8提示js错误(KB927917)解决方法
- lr_convert_string_encoding: 对中文进行UTF-8转码