视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
css怎么做出六边形图片
2020-11-27 18:49:21 责编:小采
文档


这次给大家带来css怎么做出六边形图片,css做出六边形图片的注意事项有哪些,下面就是实战案例,一起来看一下。

用简单的div配合伪元素,即可‘画出’这幅六边形图片,原理是三个相同宽高的div,通过定位旋转拼合成一个六边形,再利用背景图层叠,形成视觉上的一张整图。下面咱们一步一步来实现。

(1)那么第一步,当然是绘制容器,容器是一个有宽高的div。

绘制之前,必须明白一个问题,那就是,等边六边形是通过三个相同宽高的div拼合而成的(如下图所示,所以div的宽高必须满足 √3 倍的条件才能拼成一个正六边形,这里就不带大家计算这个值了,有兴趣可以用三角函数私下自己计算一下。

在此处,我设置了外层容器宽为190px, 高为110px, 然后设置背景图片 。代码如下

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<style>
 .wrap{
 height:110px;
 width: 190px;
 position: relative;
 margin: 200px auto;
 background: url('./eddie.jpg') 50% 50% no-repeat;
 background-size: auto 220px;
 }
</style>
<body>
 <div class='wrap'>
 </div>
</body>
</html>

(2)第二步,绘制左侧div及其伪元素图片

这一步,利用新div定位旋转拼合六边形的左侧,并给新div的伪元素设置宽高并设置与上图一致的背景图片,注意新div伪元素的宽高为整个六边形的宽高。然后旋转伪元素使图片垂直显示(应为新div旋转了,所以伪元素图片也被旋转,所以需要反向旋转回正常角度)而且还要调整伪元素位置(新div旋转了,影响伪元素定位位置),最后给这个新div设置超出隐藏,六边形左边就绘制好了

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<style>
 .wrap{
 height:110px;
 width: 190px;
 position: relative;
 margin: 200px auto;
 background: url('./eddie.jpg') 50% 50% no-repeat;
 background-size: auto 220px;
 }
 .common{
 position: absolute;
 height: 100%;
 width: 100%;
 overflow: hidden;
 left:0;
23
 }
 .common:before{
 content:'';
 position: absolute;
 background:url('./eddie.jpg') 50% 50% no-repeat;
 background-size: auto 220px;
 width: 190px;
 height: 220px;
 }
 .left{
 transform: rotate(60deg);
 }
 .left:before{
 transform: rotate(-60deg) translate(48px,-28px);
 }
</style>
<body>
 <div class='wrap'>
 <div class='left common'></div>
 
 </div>
</body>
</html>

(3)第三步,绘制右侧div及其伪元素图片

这步原理和第二部一样,只不过角度反过来了,所以就不赘述,直接上完整代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
</head>
<style>
 .wrap{
 height:110px;
 width: 190px;
 position: relative;
 margin: 200px auto;
 background: url('./eddie.jpg') 50% 50% no-repeat;
 background-size: auto 220px;
 }
 .common{
 position: absolute;
 height: 100%;
 width: 100%;
 overflow: hidden;
 left:0;
 
 }
 .common:before{
 content:'';
 position: absolute;
 background:url('./eddie.jpg') 50% 50% no-repeat;
 background-size: auto 220px;
 width: 190px;
 height: 220px;
 }
 .left{
 transform: rotate(60deg);
 }
 .left:before{
 transform: rotate(-60deg) translate(48px,-28px);
 }
 .right{
 transform: rotate(-60deg);
 }
 .right:before{
 transform: rotate(60deg) translate(48px,28px);
 bottom: 0;
 }
</style>
<body>
 <div class='wrap'>
 <div class='left common'></div>
 <div class='right common'></div>
 </div>
</body>
</html>

至此,就能展现出文章最开始的图片,利用这一原理,还可以做出其他各种形状的图片展示效果。欢迎各位继续研究。以后图片展示不再是单一的砖块行啦!!

相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

相关阅读:

HTML5的下拉框应该如何增加用户体验

用H5的WebGL如何在同一个界面做出json和echarts图表

H5的语义化标签新特性应该如何使用

下载本文
显示全文
专题