菱形圖片

在網頁中呈現菱形效果有兩種方法
基于變形的方案
使用div將圖片包裹起來,然后對其應用相反的rotate()變形樣式

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>菱形圖片</title>
    <style type="text/css" media="screen">
        .photo{
            margin: 5% auto;
            width: 150px;
            transform: rotate(45deg);
            overflow: hidden;
        }
        .photo > img{
            max-width: 100%;
            transform: rotate(-45deg) scale(1.42);
        }
    </style>
</head>
<body>
    <div class="photo">
        ![](1.jpg)
    </div>
</body>
</html>

max-width:100%這條聲明會被解析為容器的邊長,但是我們需要的是圖片寬度與容器對角線相等,所以約為1.42倍。如果使用scale()變樣式來把這個圖片放大會更合理:1)希望圖片尺寸屬性保留100%這個值,當瀏覽器不支持變形樣式時仍然可以得到合理的布局
2)通過scale()變形樣式來縮放圖片是以它的中心點進行縮放的;通過width屬性來放大圖片時,只會以它的左上角為原點進行縮放,從而迫使我們動用額外的負外邊距來把圖片的位置調整回來。

這是實現效果

裁剪路徑方案
使用clip-path屬性對圖片進行裁剪,使用polygon()多邊形函數來指定形狀(一系列用逗號分隔的坐標點),完美解決非正方形圖片的菱形裁剪問題,還可以做出一些動畫。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>菱形圖片</title>
    <style type="text/css" media="screen">
        img{
            width: 30%;
            clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%);
            transition: 1s clip-path;
        }
        img:hover{
            clip-path: polygon(0 0,100% 0,100% 100%,0 100%);
        }
    </style>
</head>
<body>
    ![](23.jpeg)
</body>
</html>
長方形圖片的裁剪效果
鼠標移上去可以平滑過渡到原來的樣子
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容