clip 和 clip

2018-06-19 18:28 更新
一、Clip
CSS的clip屬性并不是CSS3的新屬性,而是在CSS2中已經(jīng)存在了,不過在實際開發(fā)中,這個屬性的使用率比較低,我之前也是瞄過這個名稱,最近看過一個網(wǎng)站的加載動畫,才知道其的強大。
下面就一起來學(xué)學(xué)吧!
Clip屬性在W3C官網(wǎng)是這樣進(jìn)行描述的:“通過對元素進(jìn)行剪切來控制元素的可顯示區(qū)域,默認(rèn)情況下,元素是不進(jìn)行任何剪切的,但是也有可能剪切區(qū)域也顯示的設(shè)置了clip屬性”。
語法:

clip:<shape> | auto | inherit;

注意:clip屬性只能在元素設(shè)置了“ position:absolute ”或者“ position:fixed ”屬性起作用;如果先有" overflow:visible ",clip屬性不起作用。

屬性值說明:
  • <shape>:shape是一個函數(shù)功能,當(dāng)前只支持 rect (top, right, bottom, left) 屬性。
  • auto:這是一個默認(rèn)值,表示不進(jìn)行剪切。
  • inherit:繼承父元素的clip屬性。

Rect()使用詳解
rect有四個值,順序和margin、padding以及border具有一樣的標(biāo)準(zhǔn),分別是:top,right,bottom,left

clip:rect (top, right, bottom, left)

在這里要提醒一句,rect()屬性的top和bottom指定的偏移量是從元素盒子頂部邊緣算起的;left和right指定的偏移量是從元素盒子左邊邊緣算起的,看下圖:


簡單例子:

.clip{   

  position:absolute;   

  clip:rect(30px,200px,150px,50px);   

}

效果如下:

左側(cè)是原圖,右側(cè)是剪切后的圖,是不是很神奇咧!
接下來利用clip這個屬性來制作一個圓形加載動畫:


到這里,clip屬性已經(jīng)介紹完了,請盡情發(fā)揮你的想象力,制作出酷炫的效果。

二、clip-path
clip-path是CSS3中的屬性,比舊版本的clip更加強大,但它的缺點就是兼容性,ie是完全不支持的,而webkit內(nèi)核的瀏覽器,需要加上內(nèi)核前綴-webkit-

語法:

clip:<clip-source> | [<basic-shape> || <geometry-box> ] | none;

默認(rèn)值是none。
屬性值說明:
  • clip-source: 可以是內(nèi)、外部的SVG的 <clipPath> 元素的url引用
  • basic-shape:使用基本的形狀函數(shù)創(chuàng)建的圖形形狀,如:circle()、ellipse()、inset() 和 polygon()

如果你熟悉svg,那你對下面的屬性應(yīng)該會有一些熟悉。

1.多邊形polygon
語法:

clip-path:polygon(x y,x1 y1....,xn yn)

x y :第一個點的x軸值和y軸值,以此類推,xn yn表示第n個點的x軸和y軸值;值可以是百分比或像素值。

2.圓形circle
語法:

clip-path:circle( r at x y)

  • r表示圓的半徑
  • x y:原點位置

3.橢圓ellipse
語法:

clip-path:ellipse( r1 r2 at x y)

  • r1:水平半徑
  • r2:垂直半徑
  • x y:圓心位置

4.inset
語法:

clip-path: inset(top right bottom left round top-radius right-radius bottom-radius left-radius)




簡單例子:

.polygon{   

  -webkit-clip-path:polygon(0 100%, 50% 0, 100% 100%);   

}   

.circle{   

  -webkit-clip-path: circle(20% at 50% 50%);   

}   

.ellipse{   

  -webkit-clip-path: ellipse(30% 20% at 50% 50%);   

}   

.inset{   

  -webkit-clip-path: inset(25% 0 round 0 25%);   

}

效果如下:




到這里,并沒有完,更加酷炫的效果,當(dāng)然是配合上svg

.text {   

  -webkit-clip-path: url(#svgTextPath);   

  clip-path: url(#svgTextPath); }

svg:

<svg height="0" width="0">   

  <defs>   

    <clipPath id="svgTextPath">   

      <text x="10" y="250" textLength="200px" lengthAdjust="spacing" font-family="Vollkorn" font-size="50px" font-weight="700" font-style="italic"> 酷炫 </text>   

    </clipPath>   

  </defs>   

</svg>

效果如下:



后續(xù)學(xué)習(xí)會繼續(xù)添加資料,如果您有更好的資料,歡迎在評論區(qū)提供!


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號