遇到需要實現如下圖標

由圖形分析,梯形,平行四邊形等都可以由矩形變形而來。
而想要實現梯形,需要進行3D變換,需要使用css3的 perspective屬性。
屬性 perspective指定了觀察者與 z=0 平面的距離,使具有三維位置變換的元素產生透視效果
當為元素定義 perspective 屬性時,其子元素會獲得透視效果,而不是元素本身。

DEMO:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body {
background: #eee;
}
.a {
position: relative;
width: 40px;
height: 200px;
background:transparent;
/* perspective: 1em; */
}
.a::before {
content: "";
position: absolute;
border: 1px solid #ddd;
background-color: #fff;
top: 0; right: 0; bottom: 0; left: 0;
transform: perspective(1em) rotateY(3deg);
/* transform: rotateY(3deg); */
}
.a:hover:before{
background-color: transparent;
}
</style>
</head>
<body>
<div class="a"></div>
</body>
</html>
上面代碼中的
transform: perspective(1em) rotateY(3deg);
可以由代碼中注釋的兩行代碼替換。
