CSS3圖片折角效果


本篇文章由:http://xinpure.com/css3-picture-angle-effect/

圖片折角效果主要是通過設置 border 屬性實現的效果

效果預覽

CSS3圖片折角效果

效果解析

假設我們將一個元素的 width 、height 都設置為0,然后再將 border 設置為 80px,上下和左右邊框分別為兩種不同的顏色

即:

width: 0;
height: 0;
border: 80px solid;
border-color: #00a67c #333;

CSS3圖片折角效果

這時我們可以看到,四條邊框像四個三角形一樣拼合在一起 (顯然通過設置單條邊框,我們可以制作一個三角形)

發揮一下想像,四條邊框是四個三角形合在一起形成了正方形,那如果設置成兩條邊框呢?

會不會是兩個三角形拼合成正方形呢?事實證明是會的!

CSS Code:

.border {
    width: 0;
    height: 0;
    border: 0px solid;
    border-color: #00a67c #333;
    float: left;
    margin-left: 10px;
}
.border1 {
    border-left-width: 80px;
    border-top-width: 80px;
}
.border2 {
    border-left-width: 80px;
    border-bottom-width: 80px;
}
.border3 {
    border-right-width: 80px;
    border-top-width: 80px;
}
.border4 {
    border-right-width: 80px;
    border-bottom-width: 80px;
}

HTML Code:

<div class="border border1"></div>
<div class="border border2"></div>
<div class="border border3"></div>
<div class="border border4"></div>

以下是四種去掉兩條邊框的效果:

CSS3圖片折角效果

聰明的同學可能已經發現,折角效果其實就是兩個三角形組合的正方形,形成的效果,當然還需要調整顏色的透明度等等。

這里要實現的是右上角的折角效果,因此我們需要選用上圖中的第四種效果。

另外補充一點,

添加折角效果其實就是在圖片的上面一層添加,所以用到了偽元素 :before

最終代碼示例

CSS Code

.image-layer {
    width: 384px;
    height: 240px;
    margin: 40px auto 0;
    position: relative;
    cursor: pointer;
    overflow: hidden;
}

.image-layer:before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    border: 0px solid;
    border-color: rgba(0, 0, 0, 0.2) #fff;
    -webkit-transition: border .5s ease; 
}

.image-layer:hover:before {
    border-right-width: 80px;
    border-bottom-width: 80px
}

HTML Code

<div class="image-layer" id="image-layer">
    <img src="test.jpg" />
</div>


免責聲明!

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



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