前言:
在日常开发当中,如果想要开发多边形,一般都需要多个盒子或者伪元素的帮助,有没有一直办法能只使用一个盒子实现呢?
有的: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