css控制div的各種形狀


css控制div的各種形狀

CSS3的一個非常酷的特性是允許我們創建各種規則和不規則形狀的圖形,從而可以減少圖片的使用。

以前只能在Photoshop等圖像編輯軟件中制作的復雜圖形現在使用CSS3就可以完成了。

通過使用新的CSS屬性,像transformborder-radius,我們可以創建非常漂亮和復雜的圖形效果。

 圓形

首先是圓形 這個用的是比較常見的也很簡單。

要使用CSS來制作一個圓形,我們需要一個div,給它設置一個ID。

圓形在設置CSS時要設置寬度和高度相等,然后設置border-radius屬性為寬度或高度的一半就可以了。

代碼如下:

<div id="circle"></div>
#circle {
    width: 120px;
    height: 120px;
    background: #7fee1d;
    -moz-border-radius: 60px;
    -webkit-border-radius: 60px;
    border-radius: 60px;
}                     

橢圓形

橢圓形是正圓形的一個變體,同樣使用一個帶ID的div來制作。

設置橢圓形的CSS時,高度要設置為寬度的一半,border-radius屬性也要做相應的改變。

代碼如下:

#oval {
    width: 200px;
    height: 100px;
    background: #e9337c;
    -webkit-border-radius: 100px / 50px;
    -moz-border-radius: 100px / 50px;
    border-radius: 100px / 50px;
}             

三角形

要創建一個CSS三角形,需要使用border,通過設置不同邊的透明效果,我們可以制作出三角形的現狀。

另外,在制作三角形時,寬度和高度要設置為0。

代碼如下:

<div id="triangle"></div>
#triangle {
    width: 0;
    height: 0;
    border-bottom: 140px solid #fcf921;
    border-left: 70px solid transparent;
    border-right: 70px solid transparent;
}            

倒三角形

與正三角形不同的是,倒三角形要設置的是border-topborder-leftborder-right三條邊的屬性。

代碼如下:

#triangle {
    width: 0;
    height: 0;
    border-top: 140px solid #20a3bf;
    border-left: 70px solid transparent;
    border-right: 70px solid transparent;
}               

左三角形

左三角形操作的是border-topborder-leftborder-right三條邊的屬性,其中上邊和下邊要設置透明屬性。

代碼如下:

#triangle_left {
    width: 0;
    height: 0;
    border-top: 70px solid transparent;
    border-right: 140px solid #6bbf20;
    border-bottom: 70px solid transparent;
}           

右三角形

右三角形操作的是border-bottomborder-leftborder-right三條邊的屬性,其中上邊和下邊要設置透明屬性。

代碼如下:

#triangle_right {
    width: 0;
    height: 0;
    border-top: 70px solid transparent;
    border-left: 140px solid #ff5a00;
    border-bottom: 70px solid transparent;
} 

菱形

制作菱形的方法有很多種。這里使用的是transform屬性和rotate相結合,使兩個正反三角形上下顯示。

代碼如下:

#diamond {
    width: 120px;
    height: 120px;
    background: #1eff00;
/* Rotate */
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
/* Rotate Origin */
    -webkit-transform-origin: 0 100%;
    -moz-transform-origin: 0 100%;
    -ms-transform-origin: 0 100%;
    -o-transform-origin: 0 100%;
    transform-origin: 0 100%;
    margin: 60px 0 10px 310px;
}                     

梯形

梯形是三角形的一個變體,設置CSS梯形時,左右兩條邊設置為相等,並且給它設置一個寬度。

代碼如下:

#trapezium {
    height: 0;
    width: 120px;
    border-bottom: 120px solid #ec3504;
    border-left: 60px solid transparent;
    border-right: 60px solid transparent;
} 

平行四邊形

平行四邊形的制作方式是使用transform屬性使長方形傾斜一個角度。

代碼如下:

#parallelogram {
    width: 160px;
    height: 100px;
    background: #8734f7;
    -webkit-transform: skew(30deg);
    -moz-transform: skew(30deg);
    -o-transform: skew(30deg);
    transform: skew(30deg);
}                 

星形

星形的HTML結構同樣使用一個帶ID的空div

星形的實現方式比較復雜,主要是使用transform屬性來旋轉不同的邊。仔細體會下面的代碼。

代碼如下:

#star {
    width: 0;
    height: 0;
    margin: 50px 0;
    color: #fc2e5a;
    position: relative;
    display: block;
    border-right: 100px solid transparent;
    border-bottom: 70px solid #fc2e5a;
    border-left: 100px solid transparent;
    -moz-transform: rotate(35deg);
    -webkit-transform: rotate(35deg);
    -ms-transform: rotate(35deg);
    -o-transform: rotate(35deg);
}
  
#star:before {
    height: 0;
    width: 0;
    position: absolute;
    display: block;
    top: -45px;
    left: -65px;
    border-bottom: 80px solid #fc2e5a;
    border-left: 30px solid transparent;
    border-right: 30px solid transparent;
    content: '';
    -webkit-transform: rotate(-35deg);
    -moz-transform: rotate(-35deg);
    -ms-transform: rotate(-35deg);
    -o-transform: rotate(-35deg);
}
  
#star:after {
    content: '';
    width: 0;
    height: 0;
    position: absolute;
    display: block;
    top: 3px;
    left: -105px;
    color: #fc2e5a;
    border-right: 100px solid transparent;
    border-bottom: 70px solid #fc2e5a;
    border-left: 100px solid transparent;
    -webkit-transform: rotate(-70deg);
    -moz-transform: rotate(-70deg);
    -ms-transform: rotate(-70deg);
    -o-transform: rotate(-70deg);
}                        

六角星形

和五角星的制作方法不同,六角星形狀的制作方法是操縱border屬性來制作兩半圖形,然后合並它們。

代碼如下:

#star_six_points {
    width: 0;
    height: 0;
    display: block;
    position: absolute;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-bottom: 100px solid #de34f7;
    margin: 10px auto;
}
  
#star_six_points:after {
    content: "";
    width: 0;
    height: 0;
    position: absolute;
    border-left: 50px solid transparent;
    border-right: 50px solid transparent;
    border-top: 100px solid #de34f7;
    margin: 30px 0 0 -50px;
}                              

五邊形

創建CSS五邊形需要結合兩個圖形:一個梯形,然后在它的上面放一個三角形,共同組成一個五邊形。

代碼如下:

#pentagon {
    width: 54px;
    position: relative;
    border-width: 50px 18px 0;
    border-style: solid;
    border-color: #277bab transparent;
}
  
#pentagon:before {
    content: "";
    height: 0;
    width: 0;
    position: absolute;
    top: -85px;
    left: -18px;
    border-width: 0 45px 35px;
    border-style: solid;
    border-color: transparent transparent #277bab;
}                  


免責聲明!

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



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