成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用CSS3的clip-path(裁剪路徑)實(shí)現(xiàn)剪貼區(qū)域的顯示以及實(shí)例實(shí)現(xiàn)圖片漸變

番茄西紅柿 / 2818人閱讀

摘要:介紹直譯過來就是裁剪路徑,使用或形狀定義一個(gè)元素的可見區(qū)域的方法。想象一下你在中勾勒路徑的場景。上是這樣介紹的屬性可以防止部分元素通過定義的剪切區(qū)域來顯示,僅通過顯示的特殊區(qū)域。屬性代替了現(xiàn)在已經(jīng)棄用的剪切屬性。

clip-path介紹

clip-path 直譯過來就是裁剪路徑,使用SVG或形狀定義一個(gè)HTML元素的可見區(qū)域的方法。想象一下你在Photoshop中勾勒路徑的場景。MDN上是這樣介紹 clip-path的:

clip-path屬性可以防止部分元素通過定義的剪切區(qū)域來顯示,僅通過顯示的特殊區(qū)域。剪切區(qū)域是被URL定義的路徑代替行內(nèi)或者外部svg,或者定義路線的方法例如circle().。clip-path屬性代替了現(xiàn)在已經(jīng)棄用的剪切 clip屬性。

基本語法

 | [  ||  ] | none

/*屬性說明*/
 = 
 =  |  |  | 
 =  | fill-box | stroke-box | view-box

兼容性

clip-path目前兼容性較差,IE和Edge直接不支持。

語法詳解和示例

為了更明顯的表示裁剪區(qū)域,我給每個(gè)demo添加了同樣寬高的透明背景,其中色塊表示被裁剪后的部分,透明背景表示被裁剪的區(qū)域。

基本圖形:inset(定義矩形)

inset() : 定義一個(gè)矩形 。注意,定義矩形不是rect,而是 inset。

//語法
inset( {1,4} [ round  ]? )
//說明
inset()可以傳入5個(gè)參數(shù),分別對應(yīng)top,right,bottom,left的裁剪位置,round radius(可選,圓角)

//示例
clip-path: inset(2em 3em 2em 1em round 2em);

 

基本圖形:circle(定義圓)

//語法
circle( [  ]? [ at  ]? )
//說明
circle()可以傳人2個(gè)可選參數(shù);
1. 圓的半徑,默認(rèn)元素寬高中短的那個(gè)為直徑,支持百分比
2. 圓心位置,默認(rèn)為元素中心點(diǎn)
//半徑公式
如果半徑使用百分比:圓的半徑 = (sqrt(width^2+height^2)/sqrt(2)) * 百分比 

//示例
clip-path: circle(30% at 150px 120px);

基本圖形:ellipse(定義橢圓)

//語法
ellipse( [ {2} ]? [ at  ]? )
//說明
ellipse()可以傳人3個(gè)可選參數(shù);
1. 橢圓的X軸半徑,默認(rèn)是寬度的一半,支持百分比
2. 橢圓的Y軸半徑,默認(rèn)是高度的一半,支持百分比
3. 橢圓中心位置,默認(rèn)是元素的中心點(diǎn)

//示例
clip-path: ellipse(45% 30% at 50% 50%);

 

基本圖形:polygon(定義多邊形)

//語法
polygon( ? , [   ]# )
//說明
可選,表示填充規(guī)則用來確定該多邊形的內(nèi)部??赡艿闹涤衝onzero和evenodd,默認(rèn)值是nonzero
后面的每對參數(shù)表示多邊形的頂點(diǎn)坐標(biāo)(X,Y),也就是連接點(diǎn)

//示例
clip-path: polygon(50% 0,100% 50%,0 100%);

其他屬性

除了 inset, circle等 basic-shape屬性外,clip-path還具有url, geometry-box等屬性值,具體可以參考MDN上的介紹。

完整語法

/* Keyword values */
clip-path: none;

/*  values */ 
clip-path: url(resources.svg#c1);

/*  values */
clip-path: margin-box;
clip-path: border-box;
clip-path: padding-box;
clip-path: content-box;
clip-path: fill-box;
clip-path: stroke-box;
clip-path: view-box;

/*  values */
clip-path: inset(100px 50px);
clip-path: circle(50px at 0 100px);
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
clip-path: path(M0.5,1 C0.5,1,0,0.7,0,0.3 A0.25,0.25,1,1,1,0.5,0.3 A0.25,0.25,1,1,1,1,0.3 C1,0.7,0.5,1,0.5,1 Z);

/* Box and shape values combined */
clip-path: padding-box circle(50px at 0 100px);

/* Global values */
clip-path: inherit;
clip-path: initial;
clip-path: unset;

圖片漸變實(shí)例

實(shí)現(xiàn)圖片從上往下漸變

html代碼:

<div class="img">
    <img src="images/1.jpg"/>
div>

CSS代碼:

*{padding:0;margin:0;}
.img{width:630px;height:630px;}
.img img{display: block;width:100%;}
.img{
    overflow: hidden;
    -webkit-clip-path: polygon(0 0,0 0,100% 0,100% 0);
    clip-path: polygon(0 0,0 0,100% 0,100% 0);
    opacity: 0;
    transition: opacity 1.1s ease 167ms,-webkit-clip-path 1.1s cubic-bezier(.19,1,.22,1);
    transition: clip-path 1.1s cubic-bezier(.19,1,.22,1),opacity 1.1s ease 167ms;
    transition: clip-path 1.1s cubic-bezier(.19,1,.22,1),opacity 1.1s ease 167ms,-webkit-clip-path 1.1s cubic-bezier(.19,1,.22,1);
}
.img.current{
    opacity: 1;
    -webkit-clip-path: polygon(0 0,0 100%,100% 100%,100% 0);
    clip-path: polygon(0 0,0 100%,100% 100%,100% 0);
}

JS代碼:

$(function(){
    $(".img").addClass(current);
})

實(shí)現(xiàn)圖片從左往右漸變

圖片不顯示的時(shí)候:

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

圖片顯示的時(shí)候:

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

參考地址

  • 《不可思議的CSS之clip-path》
  • 《MDN:clip-path》
  • 截圖基于clip-path在線神器 - http://bennettfeely.com/clippy
  • 圖片漸變效果參考地址:https://www.uber.design/case-studies

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/1098.html

相關(guān)文章

  • 不可思議CSS之clip-path

    摘要:一個(gè)用來生成各種形狀包括隨意拖拉自定義并且可以直接生成代碼的網(wǎng)站。兼容性目前兼容性較差,和直接不支持,考慮兼容性的同學(xué)可以暫時(shí)等等。透明區(qū)域表示被裁剪的區(qū)域基本圖形定義一個(gè)矩形。語法說明可選,表示填充規(guī)則用來確定該多邊形的內(nèi)部。 本文首發(fā)于 我的博客 曾經(jīng)和某位朋友在聊天中討論過這樣一個(gè)話題:綜合90%的網(wǎng)站的布局以及頁面中的元素不是方的,就是圓的。就像所有的顏色都是由三原色(RGB)...

    walterrwu 評論0 收藏0
  • 可視化效果(Visual effects)

    摘要:一般地,一個(gè)塊盒的內(nèi)容都被限制在該盒的邊內(nèi)。這種盒并不一定會根據(jù)其祖先的屬性裁剪。默認(rèn)情況下,元素不會被裁剪。在閉合路徑內(nèi)的內(nèi)容會顯示,而路徑外邊的都會被剪掉著作權(quán)歸作者所有。 Overflow and clipping 一般地,一個(gè)塊盒的內(nèi)容都被限制在該盒的content邊內(nèi)。某些情況下,一個(gè)盒可能會溢出,意味著它的部分內(nèi)容或者全部內(nèi)容位于該盒外部,例如: 一行無法拆分,導(dǎo)致行盒比...

    JowayYoung 評論0 收藏0
  • CSS學(xué)習(xí)筆記

    CSS學(xué)習(xí)筆記 在學(xué)習(xí)CSS的過程中做的一些記錄,用于未來的快速回憶。 HTML常見元素和理解 head中的元素 指定字符集 meta name=viewport content=...定義視圖大小與設(shè)備屏幕大小的比例,用戶是否可縮放 指定基準(zhǔn)路徑 body中的元素 a[href, target] img[src, alt] table td[colspan, rowspan] for...

    bawn 評論0 收藏0
  • CSS斜切角

    摘要:問題斜切角在設(shè)計(jì)和印刷中是相當(dāng)受歡迎的樣式。當(dāng)斜切角只存在元素的一側(cè),并且每個(gè)都占據(jù)元素的高度的時(shí)候,一個(gè)箭頭的形狀產(chǎn)生了,這在按鈕和面包屑導(dǎo)航中非常受歡迎?,F(xiàn)在,假設(shè)我們需要兩個(gè)斜切角,左右下角分別一個(gè)。 問題 斜切角在Web設(shè)計(jì)和印刷中是相當(dāng)受歡迎的樣式。它通常是在一個(gè)或多個(gè)元素的角落切一個(gè)45°的角(也就是所謂的斜切角)。特別是最近,扁平化設(shè)計(jì)的勢頭壓過了擬真設(shè)計(jì),也使這種效果...

    番茄西紅柿 評論0 收藏0
  • 用css繪制各種形狀

    摘要:同樣的方法可以實(shí)現(xiàn)下面這種布局具體代碼如下通過把改成或,就可以立即得到左側(cè)傾斜或右側(cè)傾斜的標(biāo)簽頁。簡單的餅圖的繪制思路是把圓形的左右兩部分指定為上述兩種顏色,然后用偽元素覆蓋上去,通過旋轉(zhuǎn)來決定露出多大的扇區(qū)。 自適應(yīng)的橢圓 1.自適應(yīng)的橢圓 實(shí)現(xiàn)方式是通過border-radius這個(gè)屬性;border-radius它可以單獨(dú)指定水平和垂直半徑。用 / 分隔這兩個(gè)值。并且該屬性的值不...

    Lionad-Morotar 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<