用CSS實現梯形圖標


遇到需要實現如下圖標

由圖形分析,梯形,平行四邊形等都可以由矩形變形而來。

而想要實現梯形,需要進行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);

可以由代碼中注釋的兩行代碼替換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM