前言:
在日常开发当中,如果想要开发多边形,一般都需要多个盒子或者伪元素的帮助,有没有一直办法能只使用一个盒子实现呢?
有的:css裁剪
目录
前言:
clip-path到底是什么?
clip-path属性
示例图:初始化样式
鼠标hover后:
代码示例:
自定义clip-path形状网站:
MDN官网详细介绍:
clip-path到底是什么?
clip-path 属性可以创建一个只有元素的部分区域可以显示的剪切区域。区域内的部分显示,区域外的隐藏。clip-path是一个css3新属性 , 一般用在svg元素上 , 但是也可以作为普通元素裁剪使用。
clip-path属性
clip-path属性可以使用四种裁剪函数:circle()、ellipse()、inset()和polygon()。
下面用一个例子来演示这四个函数的效果,将它们分别应用到四个div元素中,样式如下,得到的形状如下图所示。
示例图:初始化样式
鼠标hover后:
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
width: 400px;
height: 440px;
display: block;
margin: 100px auto;
background-color: #000;
}
img {
width: 100%;
height: 100%;
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
transition: 0.5s;
}
.box:hover img {
clip-path: polygon(100% 0%, 100% 100%, 0% 100%, 0% 0%);
}
</style>
</head>
<body>
<div class="box">
<img src="../../Downloads/1.png" alt="" />
</div>
</body>
</html>
自定义clip-path形状网站:
CSS3剪贴路径(Clip-path)在线生成器工具 - 代码工具 - 脚本之家在线工具
MDN官网详细介绍:
clip-path - CSS:层叠样式表 | MDN