摘要:裁剪路徑可以將如或自由變化的應(yīng)用于任何元素。元素中不在形狀邊界內(nèi)的任何內(nèi)容都將被裁剪刪除掉。例如,我們可以從內(nèi)容隱藏完全裁剪開(kāi)始,并增大裁剪路徑以顯示其中的內(nèi)容。
隨著瀏覽器對(duì)shape-outside和clip-path等屬性的支持增加,CSS Shapes越來(lái)越受到關(guān)注。有幾種方法可以使用CSS Shapes,特別是clip-path屬性,乍一看我們并不知道這個(gè)屬性如何使用,下面就來(lái)詳細(xì)的介紹它。
裁剪路徑clip path的基礎(chǔ)知識(shí)在深入研究之前,我們應(yīng)該先看看基本的形狀和clip-path。裁剪路徑可以將CSS Shapes如circle()、ellipse(), inset()或自由變化的polygon()應(yīng)用于任何元素。元素中不在形狀邊界內(nèi)的任何內(nèi)容都將被裁剪刪除掉。
使用多邊形函數(shù),我們可以創(chuàng)建三角形、星形或其他形狀,雖然在可以使用px等固定單位,但百分比將提供更大的靈活性并自適應(yīng)于元素的尺寸。
所以對(duì)于一個(gè)八邊形,我們可以設(shè)置八組x,y點(diǎn)坐標(biāo)來(lái)定義。在這種情況下,對(duì)于第一個(gè)x,我們從盒子寬度的30%開(kāi)始,對(duì)于y,我們從盒子的頂部開(kāi)始,然后順時(shí)針設(shè)置各個(gè)點(diǎn)。可見(jiàn)區(qū)域就是通過(guò)將這些點(diǎn)用直線(xiàn)連接而形成的形狀。
clip-path: polygon( 30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30% );看不見(jiàn)的頂點(diǎn)
上面實(shí)現(xiàn)一個(gè)八邊形,我們?cè)O(shè)置了八個(gè)點(diǎn)的坐標(biāo)。但是,我們可以跳出元素框的限制去思考,也就是說(shuō)要跳出0% - 100%的這個(gè)范圍。
元素的盒邊框是裁剪后內(nèi)容的顯示邊界,但我們?nèi)匀豢梢詾樵囟x超出盒邊框的點(diǎn)。
通過(guò)定義超過(guò)0%-100%范圍的點(diǎn),我們可以把一個(gè)有三個(gè)點(diǎn)的多邊形變成四邊形、五邊形或六邊形。在這個(gè)例子中,都是定義clip-path: polygon()函數(shù)的三個(gè)點(diǎn),但是由于超出了元素框的邊界,我們可以看到一個(gè)三角形和兩個(gè)五邊形。
于是,上面的八邊形只用四個(gè)點(diǎn)就可以實(shí)現(xiàn)。
一條裁剪路徑,多個(gè)形狀我們可以利用超出元素邊界的這種能力用一個(gè)polygon()創(chuàng)建多個(gè)裁剪形狀。
CSS源碼
根據(jù)元素的位置,我們可以直接制作出每個(gè)形狀,但是因?yàn)槲覀冎啦眉糇鴺?biāo)點(diǎn)可以在元素框之外的空間中移動(dòng),所以可以繪制額外的線(xiàn)來(lái)幫助我們找到下一個(gè)點(diǎn)的位置。
它還可以幫助我們分割元素。結(jié)合CSS自定義屬性,我們可以處理重疊的元素,并將每個(gè)元素裁剪成交替的條帶。下面的例子是兩個(gè)重疊的圓角矩形,每個(gè)被分成不規(guī)則的矩形動(dòng)畫(huà)。
CSS源碼
polygon()函數(shù)不僅僅是一組坐標(biāo)點(diǎn)的集合,它還有另外的一個(gè)參數(shù) — 填充規(guī)則 ,我們一直使用的默認(rèn)值是nonzero,它還有另外一個(gè)值是evenodd,這兩個(gè)值它們確定形狀的內(nèi)部和外部的規(guī)則是不同的。
CSS源碼
當(dāng)使用evenodd規(guī)則時(shí),我們可以通過(guò)從任意的點(diǎn)繪制光線(xiàn)來(lái)確定點(diǎn)是在邊界內(nèi)還是在邊界外。如果光線(xiàn)穿過(guò)裁剪路徑線(xiàn)的和為偶數(shù),則該點(diǎn)被視為外部,如果光線(xiàn)穿過(guò)裁剪路徑線(xiàn)的和為奇數(shù),則該點(diǎn)位于內(nèi)部。
順序要注意的是,有許多CSS屬性例如CSS Filters, Blend Modes等都會(huì)影響元素的外觀。而這些效果會(huì)按下面的順序應(yīng)用到元素上:
CSS Filters (例如 filter: blur(2px))
Clipping (本文所講的)
Masking (類(lèi)似與裁剪)
Blend Modes (例如 mix-blend-mode: multiply)
Opacity
如果我們需要一個(gè)模糊的星星形狀,模糊效果會(huì)發(fā)生在裁剪之前。由于模糊效果會(huì)參照元素的邊框,但是我們將元素邊框裁剪掉了,于是前一個(gè)星星的模糊效果會(huì)丟失。
CSS源碼
如果我們想模糊星星,可以選擇將剪裁后的元素包裹在模糊的父元素中。內(nèi)部元素將首先呈現(xiàn)其星星的形狀,然后父元素將正常模糊其內(nèi)容。
通過(guò)動(dòng)畫(huà)來(lái)顯示內(nèi)容CSS Shapes是可以添加動(dòng)畫(huà)效果的,它允許我們?cè)诓挥绊懺貎?nèi)容的情況下改變?cè)氐目梢晠^(qū)域。例如,我們可以從內(nèi)容隱藏(完全裁剪)開(kāi)始,并增大裁剪路徑以顯示其中的內(nèi)容。要注意的是,clip-path: polygon()動(dòng)畫(huà)形的一個(gè)重要條件是每個(gè)關(guān)鍵幀的坐標(biāo)點(diǎn)數(shù)以及填充規(guī)則都必須相同。否則,瀏覽器將沒(méi)有足夠的信息來(lái)插入中間值。
CSS源碼
Clip paths給我們提供了一些新的有趣的可能,同時(shí)clip-path屬性并不會(huì)改變?cè)乇旧淼某叽绾筒季郑@也是它強(qiáng)大的地方,我們可以大量的使用這個(gè)屬性來(lái)改變?cè)氐耐庥^。
獲取以上效果的全部源碼可以:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/104665.html
摘要:裁剪路徑可以將如或自由變化的應(yīng)用于任何元素。元素中不在形狀邊界內(nèi)的任何內(nèi)容都將被裁剪刪除掉。例如,我們可以從內(nèi)容隱藏完全裁剪開(kāi)始,并增大裁剪路徑以顯示其中的內(nèi)容。 隨著瀏覽器對(duì)shape-outside和clip-path等屬性的支持增加,CSS Shapes越來(lái)越受到關(guān)注。有幾種方法可以使用CSS Shapes,特別是clip-path屬性,乍一看我們并不知道這個(gè)屬性如何使用,下面就...
摘要:裁剪路徑可以將如或自由變化的應(yīng)用于任何元素。元素中不在形狀邊界內(nèi)的任何內(nèi)容都將被裁剪刪除掉。例如,我們可以從內(nèi)容隱藏完全裁剪開(kāi)始,并增大裁剪路徑以顯示其中的內(nèi)容。 隨著瀏覽器對(duì)shape-outside和clip-path等屬性的支持增加,CSS Shapes越來(lái)越受到關(guān)注。有幾種方法可以使用CSS Shapes,特別是clip-path屬性,乍一看我們并不知道這個(gè)屬性如何使用,下面就...
摘要:一般地,一個(gè)塊盒的內(nèi)容都被限制在該盒的邊內(nèi)。這種盒并不一定會(huì)根據(jù)其祖先的屬性裁剪。默認(rèn)情況下,元素不會(huì)被裁剪。在閉合路徑內(nèi)的內(nèi)容會(huì)顯示,而路徑外邊的都會(huì)被剪掉著作權(quán)歸作者所有。 Overflow and clipping 一般地,一個(gè)塊盒的內(nèi)容都被限制在該盒的content邊內(nèi)。某些情況下,一個(gè)盒可能會(huì)溢出,意味著它的部分內(nèi)容或者全部?jī)?nèi)容位于該盒外部,例如: 一行無(wú)法拆分,導(dǎo)致行盒比...
摘要:之前的工作中有用到過(guò)這個(gè)屬性。作用是這么說(shuō)的屬性剪裁絕對(duì)定位元素。唯一合法的形狀值是默認(rèn)值。規(guī)定應(yīng)該從父元素繼承屬性的值。所以顯示的部分應(yīng)該就是左下角四分之一區(qū)域。使用屬性實(shí)現(xiàn)音頻播放圓環(huán)進(jìn)度條 ??之前的工作中有用到過(guò)clip這個(gè)屬性。最近工作又再次用到這個(gè)屬性時(shí),發(fā)現(xiàn)自己忘了怎么設(shè)置這個(gè)屬性值的了。看來(lái)上次沒(méi)有真的弄懂這個(gè)屬性,又去查了查文檔學(xué)習(xí)了一下。這里簡(jiǎn)單分享,同時(shí)加深一下映...
摘要:之前筆試題有一道選擇題是關(guān)于屬性的,后來(lái)查閱資料才發(fā)現(xiàn)有各種子屬性,特寫(xiě)此文章整理一下。新增指定背景的顯示區(qū)域。默認(rèn)情況下,總是以元素左上角為坐標(biāo)原點(diǎn)進(jìn)行背景圖像定位。此關(guān)鍵字表示背景相對(duì)于元素的內(nèi)容固定。 之前筆試題有一道選擇題是關(guān)于background屬性的,后來(lái)查閱資料才發(fā)現(xiàn)background有各種子屬性,特寫(xiě)此文章整理一下。 瀏覽器兼容性支持 PC端:showImg(http...
閱讀 2111·2021-11-24 10:28
閱讀 1117·2021-10-12 10:12
閱讀 3337·2021-09-22 15:21
閱讀 679·2021-08-30 09:44
閱讀 1895·2021-07-23 11:20
閱讀 1147·2019-08-30 15:56
閱讀 1751·2019-08-30 15:44
閱讀 1483·2019-08-30 13:55