CSS3 clip-path圖形剪裁

CSS3中的clip-path可以遮罩很多圖形,它的原理其實是將超出剪裁范圍的內容overflow設置為hide了,該屬性可以剪裁多種不同的圖形效果,算是比較方便實用的工具,但目前看來該屬性瀏覽器兼容性不佳,ie和firefox并不兼容,chrome可以支持,我在chrome嘗試了幾個簡單的例子。

1.圓形circle

1.png
//html
<div class='container'>
  <div class='content clip-sty'></div>
</div>
//css
.clip-sty{
  -webkit-clip-path: circle(95px at 100px 100px);
}

原理很簡單,其實就是一個div,添加一個clip-path: circle(95px at 100px 100px)的屬性,第一個參數代表指定圓的半徑,最后兩個參數代表圓心的坐標位置,容器的左上角為坐標原點(0,0),這些數值也可以用百分比表示,如:clip-path: circle(45% at 50% 50%),超出剪裁外的部分會被隱藏。雖然說圓形的話我們有另一個更快捷的屬性:border-radius就能輕松辦到,但這也不失為一種很有用的工具。

2.橢圓ellipse

2.png
.clip-sty{
  -webkit-clip-path: ellipse(80px 60px at 100px 100px);
}

與圓形十分類似,(100px,100px)表示圓心位置,80px表示較長半徑,60px表示短半徑,也可用百分比形式表示。

3.圓角效果inset
用這個屬性可以創造出一些圓角效果,例如圓角矩形啊等,如圖:

3.png
.clip-sty{
  -webkit-clip-path:inset(20% 0 20% 0 round 0 0 25% 25%);
}

inset使用四個值分別對應“上 右 下 左”的順序,前4個值對應的是外邊距,后4個值對應四個角的圓半徑值。

4.多邊形polygon
寫法:clip-path: polygon(x y, x y, x y … );可以定義多組x,y,每個 (x,y)代表剪裁的坐標,以左上角為初始坐標,如圖:

4.png
.clip-sty{
  -webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);
}

[demo展示中心]:https://yomonah.github.io/project/app.html#/clip-path
[源碼]:https://github.com/yomonah/react-demo/tree/master/src/components/clip

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載請聲明 原文鏈接 關注公眾號獲取更多資訊 這篇文章主要總結H5的一些新增的功能以及一些基礎歸納,這里只是一個提...
    前端進階之旅閱讀 9,107評論 22 225
  • 一.自適應的橢圓 問題: 我們肯定都注意到過,我們給一個正方形元素添加一個足夠大的border-radius(指定...
    FlyingWWS閱讀 766評論 0 2
  • 一:canvas簡介 1.1什么是canvas? ①:canvas是HTML5提供的一種新標簽 ②:HTML5 ...
    GreenHand1閱讀 4,719評論 2 32
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,805評論 0 2
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,337評論 0 11