css中如何把图片六边形显示

admin 轻心小站 关注 LV.19 运营
发表于前端技术学习版块 css,教程

CSS中如何把图片六边形显示?// HTML代码 <div class= hexagon > <img src= image.jpg alt= 图片 &

CSS中如何把图片六边形显示?

// HTML代码
<div class="hexagon">
  <img src="image.jpg" alt="图片">
</div>

/* CSS代码 */
.hexagon {
  width: 173.21px;
  height: 200px;
  position: relative;
  overflow: hidden;
}

.hexagon:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(image.jpg);
  background-size: cover;
  transform: rotate(30deg);
}

.hexagon:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(image.jpg);
  background-size: cover;
  transform: rotate(-30deg);
}

img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  transform: rotate(-30deg);
} 

代码解释:

首先,我们创建一个大小为173.21px * 200px的六边形div(六边形的高度为宽度的1.1547倍),并将其相对定位且溢出隐藏;

接着,通过:before伪元素和:after伪元素来创建六边形的上下两个三角形(利用旋转变换),并使用background-image属性将图片填充到三角形;

最后,将img元素绝对定位并居中,同时给定30度旋转(因为原来的三角形旋转了30度),将六边形呈现出来。

文章说明:

本文原创发布于探乎站长论坛,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

该文观点仅代表作者本人,探乎站长论坛平台仅提供信息存储空间服务。

评论列表 评论
发布评论

评论: css中如何把图片六边形显示

粉丝

0

关注

0

收藏

0

已有0次打赏