css3 繪製畫圓、扇形

智雲程式設計發表於2019-01-05

css已經越來越強大了 ,可以使用它來繪製各種簡單的形狀,用於代替圖片顯示,這次的分享主要用到畫圓,扇形

實現圓形

<div class="circle"></div>
<style>
.circle {
  border-radius: 50%;
  width: 80px;
  height: 80px;
  background: #666;
}
</style>

效果如下:

css3  繪製畫圓、扇形

border-radius圓角的四個值按順序取值分別為:左上、右上、右下、左下。這裡只設定一個值,代表四個角的取值都為為50%

原理:

border-radius: 50% 彎曲元素的邊框以建立圓。
由於圓在任何給定點具有相同的半徑,故寬和高都需要保證一樣的值,不同的值將建立橢圓。

實現扇形

利用border-radius,實現90度角的扇形:

<div class="sector"></div>
<style>
.sector{
  border-radius:80px 0 0;
  width: 80px;
  height: 80px;
  background: #666;
}
</style>

效果如下:

css3  繪製畫圓、扇形

原理:

左上角是圓角,其餘三個角都是直角:左上角的值為寬和高一樣的值,其他三個角的值不變(等於0)。

2、繪製任意角度的扇形

效果如下:

/ 繪製一個60度扇形 /

css3  繪製畫圓、扇形

/ 繪製一個85度扇形 /

css3  繪製畫圓、扇形

/ 繪製一個向右扇形,90度扇形 /

css3  繪製畫圓、扇形

/*繪製一個顏色扇形 */

css3  繪製畫圓、扇形

/*繪製一個不同顏色半圓夾角 */

完整程式碼如下:

<div class="shanxing shanxing1">
    <div class="sx1"></div>
     <div class="sx2"></div>
</div>
<!--*繪製一個85度扇形*/--p>
<div class="shanxing shanxing2">
    <div class="sx1"></div>
     <div class="sx2"></div>
</div>
<!--*繪製一個向右扇形,90度扇形*-->
<div class="shanxing shanxing3">
    <div class="sx1"></div>
     <div class="sx2"></div>
</div>
<!--*繪製一個顏色扇形 */--p>
<div class="shanxing shanxing4">
    <div class="sx1"></div>
     <div class="sx2"></div>
</div>
<!--/*繪製一個不同顏色半圓夾角 */-->
<div class="shanxing shanxing5">
    <div class="sx1"></div>
     <div class="sx2"></div>
</div>
<style>
.shanxing{
    position: relative;
    width: 200px;
    height: 200px;
    border-radius: 100px;
    background-color: yellow;
}
.sx1{
    position: absolute;
    width: 200px;
    height: 200px;
    transform: rotate(0deg);
    clip: rect(0px,100px,200px,0px); /*這個clip屬性用來繪製半圓,在clip的rect範圍內的內容顯示出來,使用clip屬性,元素必須是absolute的 */
    border-radius: 100px;
    background-color: #f00;
    /*-webkit-animation: an1 2s infinite linear; */
}
.sx2{
    position: absolute;
    width: 200px;
    height: 200px;
    transform: rotate(0deg);
    clip: rect(0px,100px,200px,0px);
    border-radius: 100px;
    background-color: #f00;
    /*-webkit-animation: an2 2s infinite linear;*/
}
/*繪製一個60度扇形*/
.shanxing1 .sx1{transform: rotate(-30deg);}
.shanxing1 .sx2{transform: rotate(-150deg);}
/*繪製一個85度扇形*/
.shanxing2 .sx1{transform: rotate(-45deg);}
.shanxing2 .sx2{transform: rotate(-140deg);}
/*繪製一個向右扇形,90度扇形*/
.shanxing3 .sx1{transform: rotate(45deg);}
.shanxing3 .sx2{transform: rotate(-45deg);}
/*繪製一個顏色扇形 */
.shanxing4 .sx1{transform: rotate(45deg);background-color: #fff;}
.shanxing4 .sx2{transform: rotate(-45deg);background-color: #fff;}
/*繪製一個不同顏色半圓夾角 */
.shanxing5 .sx1{transform: rotate(45deg);background-color: #f00;}
.shanxing5 .sx2{transform: rotate(-45deg);background-color: #0f0;       
</style>


前端的專業程度很強,80%的問題自己很難解決,而且會很浪費時間,一個小問題可以困擾一天,這樣自信心會受到嚴重的打擊!

自己是一個五年的前端工程師


我的前端學習交流群:731771211,裡面都是學習前端的,如果你想製作酷炫的網頁,想學習程式設計。從最基礎的HTML+CSS+JS【炫酷特效,遊戲,外掛封裝,設計模式】到移動端HTML5的專案實戰的學習資料都有整理,送給每一位前端小夥伴,有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入。


點選:  加入

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901074/viewspace-2331170/,如需轉載,請註明出處,否則將追究法律責任。

相關文章