首頁  >  文章  >  web前端  >  css怎麼做出六邊形圖片

css怎麼做出六邊形圖片

php中世界最好的语言
php中世界最好的语言原創
2018-03-20 16:51:141930瀏覽

這次帶給大家css怎樣做出六角形圖片,css做出六邊形圖片的注意事項有哪些,下面就是實戰案例,一起來看一下。

本文主要介紹了css實作六邊形圖片的範例程式碼,分享給大家,具體如下:

不說別的,先上效果:

用簡單的p配合偽元素,即可'畫出'這幅六邊形圖片,原理是三個相同寬高的p,透過定位旋轉拼合成一個六邊形,再利用背景圖層疊,形成視覺上的一張整圖。下面咱們一步一步來實現。

(1)那麼第一步,當然是繪製容器,容器是一個有寬高的p。

在繪製之前,必須明白一個問題,那就是,等邊六邊形是透過三個相同寬高的p拼合而成的(如下圖所示),所以p的寬高必須滿足√ 3 倍的條件才能拼成一個正六邊形,這裡就不帶大家計算這個值了,有興趣可以用三角函數私下自己計算一下。

          

在此處,我設定了外層容器寬為190px, 高為110px, 然後設定背景圖片 。程式碼如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    .wrap{
        height:110px;
        width: 190px;
        position: relative;
        margin: 200px auto;
        background: url('./eddie.jpg') 50% 50% no-repeat; 
        background-size: auto 220px;
    }
</style>
<body>
    <p class=&#39;wrap&#39;>
    </p>
</body>
</html>

效果就是一張圖

(2)第二步,繪製左側p及其偽元素圖片

#這一步驟,利用新p定位旋轉拼合六邊形的左側,並給新p的偽元素設定寬高並設定與上圖一致的背景圖片,注意新p偽元素的寬高為整個六邊形的寬高。然後旋轉偽元素使圖片垂直顯示(應為新p旋轉了,所以偽元素圖片也被旋轉,所以需要反向旋轉回正常角度)而且還要調整偽元素位置(新p旋轉了,影響偽元素定位位置),最後給這個新p設定超出隱藏,六邊形左邊就繪製好了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    .wrap{
        height:110px;
        width: 190px;
        position: relative;
        margin: 200px auto;
        background: url('./eddie.jpg') 50% 50% no-repeat; 
        background-size: auto 220px;
    }
    .common{
        position: absolute;
        height: 100%;
        width: 100%;
        overflow: hidden;
        left:0;
23 
    }
    .common:before{
        content:'';
        position: absolute;
        background:url('./eddie.jpg') 50% 50% no-repeat;
        background-size: auto 220px;
        width: 190px;
        height: 220px;
    }
    .left{
        transform: rotate(60deg);
    }
    .left:before{
        transform: rotate(-60deg) translate(48px,-28px);
    }
</style>
<body>
    <p class=&#39;wrap&#39;>
        <p class=&#39;left common&#39;></p>
    
    </p>
</body>
</html>

效果如下:

##(3)第三步,繪製右側p及其偽元素圖片

這步原理和第二部一樣,只不過角度反過來了,所以就不贅述,直接上完整代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    .wrap{
        height:110px;
        width: 190px;
        position: relative;
        margin: 200px auto;
        background: url('./eddie.jpg') 50% 50% no-repeat; 
        background-size: auto 220px;
    }
    .common{
        position: absolute;
        height: 100%;
        width: 100%;
        overflow: hidden;
        left:0;
    }
    .common:before{
        content:'';
        position: absolute;
        background:url('./eddie.jpg') 50% 50% no-repeat;
        background-size: auto 220px;
        width: 190px;
        height: 220px;
    }
    .left{
        transform: rotate(60deg);
    }
    .left:before{
        transform: rotate(-60deg) translate(48px,-28px);
    }
    .right{
        transform: rotate(-60deg);
    }
    .right:before{
         transform: rotate(60deg) translate(48px,28px);
         bottom: 0;
    }
</style>
<body>
    <p class=&#39;wrap&#39;>
        <p class=&#39;left common&#39;></p>
        <p class=&#39;right common&#39;></p>
    </p>
</body>
</html>
至此,就能展現出文章最開始的圖片,利用這個原理,還可以做出其他各種形狀的圖片展示效果。歡迎各位繼續研究。以後圖片展示不再是單一的磚塊行啦! !

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

css3的動畫序列animation

#CSS怪異盒子模型和標準盒模型如何使用

以上是css怎麼做出六邊形圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn