成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CSS 奇思妙想 background-clip

開發(fā) 前端
說起 background-clip ,可能很多人都很陌生。Clip 的意思為修剪,那么從字面意思上理解,background-clip 的意思即是背景裁剪。

[[410846]]

說起 background-clip ,可能很多人都很陌生。Clip 的意思為修剪,那么從字面意思上理解,background-clip 的意思即是背景裁剪。

我曾經在 從條紋邊框的實現(xiàn)談盒子模型[1] 一文中談到了這個屬性,感興趣的可以回頭看看。

簡單而言,background-clip 的作用就是設置元素的背景(背景圖片或顏色)的填充規(guī)則。

與 box-sizing 的取值非常類似,通常而言,它有 3 個取值:

  1.     background-clip: border-box;  // 背景延伸到邊框外沿(但是在邊框之下) 
  2.     background-clip: padding-box; // 邊框下面沒有背景,即背景延伸到內邊距外沿。 
  3.     background-clip: content-box; // 背景裁剪到內容區(qū) (content-box) 外沿。 

不過這些都不是本文的主角。本文的主角是 background-clip: text; ,當然現(xiàn)在只有 chrome 支持,所以通常想使用它,需要 -webkit-background-clip:text;。

何為 -webkit-background-clip:text

使用了這個屬性的意思是,以區(qū)塊內的文字作為裁剪區(qū)域向外裁剪,文字的背景即為區(qū)塊的背景,文字之外的區(qū)域都將被裁剪掉。

看個最簡單的 Demo ,沒有使用 -webkit-background-clip:text :

  1. <div>Clip</div> 
  2.  
  3. <style> 
  4. div { 
  5.   font-size: 180px; 
  6.   font-weight: bold; 
  7.   color: deeppink; 
  8.   background: url($img) no-repeat center center; 
  9.   background-size: cover; 
  10. </style> 

效果如下:

[[410847]]

CodePen Demo - Clip[2]

使用 -webkit-background-clip:text

我們稍微改造下上面的代碼,添加 -webkit-background-clip:text:

  1. div { 
  2.   font-size: 180px; 
  3.   font-weight: bold; 
  4.   color: deeppink; 
  5.   background: url($img) no-repeat center center; 
  6.   background-size: cover; 
  7.   -webkit-background-clip: text; 

效果如下:

圖片

CodePen Demo - clip[3]

看到這里,可能有人就納悶了,

圖片

,啥玩意呢,這不就是文字設置 color 屬性嘛。

將文字設為透明 color: transparent

別急!當然還有更有意思的,上面由于文字設置了顏色,擋住了 div 塊的背景,如果將文字設置為透明呢?文字是可以設置為透明的 color: transparent 。

  1. div { 
  2.   color: transparent; 
  3.   -webkit-background-clip: text; 

效果如下:

圖片

CodePen Demo - clip[4]

通過將文字設置為透明,原本 div 的背景就顯現(xiàn)出來了,而文字以為的區(qū)域全部被裁剪了,這就是 -webkit-background-clip:text 的作用。

嗨起來

了解了最基本的用法,接下來可以想想如何去運用這個元素制作一些效果。

大大增強了文字的顏色填充選擇

文字顏色的動畫效果

配合其他元素,實現(xiàn)一些其他巧妙的用法

實現(xiàn)文字漸變效果

利用這個屬性,我們可以十分便捷的實現(xiàn)文字的漸變色效果。

  1. <div> background-clip: text</div> 
  1. div { 
  2.     font-size: 54px; 
  3.     color: transparent; 
  4.     background: linear-gradient(45deg, #ffeb3b, #009688, yellowgreen, pink, #03a9f4, #9c27b0, #8bc34a); 
  5.     background-clip: text; 
  6.     animation: huerotate 3s infinite; 
  7.  
  8. @keyframes huerotate { 
  9.     100% { 
  10.         filter: hue-rotate(360deg); 
  11.     } 
圖片

CodePen Demo -- background-clip: text 文字漸變色[5];

背景漸變動畫 && 文字裁剪

因為有用到 background 屬性,回憶一下,我在上一篇 巧妙地制作背景色漸變動畫![6] 利用了漸變 + animation 巧妙的實現(xiàn)了一些背景的漸變動畫。可以很好的和本文的知識結合起來。

結合漸變動畫,當然不一定需要過渡動畫,這里我使用的是逐幀動畫。配合 -webkit-background-clip:text,實現(xiàn)了一種,嗯,很紅燈區(qū)的感覺:

  1. <div class="text">保健沐足按摩</div> 
  1. .text { 
  2.     font-size: 80px; 
  3.     background: linear-gradient(90deg, red 0, orange 15%, yellow 30%, green 45%, teal 60%, blue 75%, purple 90% ,purple 100%); 
  4.     background-clip: text; 
  5.     color: transparent; 
  6.     animation: changeColor .5s linear infinite alternate; 
  7.  
  8. @keyframes changeColor { 
  9.     0% { 
  10.         background-image: linear-gradient(90deg, red 0, orange 15%, yellow 30%, green 45%, teal 60%, blue 75%, purple 90% ,purple 100%); 
  11.     } 
  12.     50% { 
  13.         background-image: linear-gradient(90deg, deeppink 0, yellowgreen 15%, fuchsia 30%, lime 45%, olive 60%, aqua 75%, coral 90% ,brown 100%); 
  14.     } 
  15.     100% { 
  16.         background-image: linear-gradient(-90deg, red 0, orange 15%, yellow 30%, green 45%, teal 60%, blue 75%, purple 90% ,purple 100%); 
  17.     } 
圖片

CodePen Demo -- 背景漸變動畫 && 文字裁剪[7]

給文字增加高光動畫

利用 background-clip, 我們還可以輕松的給文字增加高光動畫。

譬如這樣:

圖片

其本質也是利用了 background-clip,偽代碼如下:

  1. <p data-text="Lorem ipsum dolor"> Lorem ipsum dolor </p> 
  1. p { 
  2.     position: relative
  3.     color: transparent; 
  4.     background-color: #E8A95B; 
  5.     background-clip: text; 
  6. p::after { 
  7.     content: attr(data-text); 
  8.     position: absolute
  9.     left: 0; 
  10.     top: 0; 
  11.     width: 100%; 
  12.     height: 100%; 
  13.     background-image: linear-gradient(120deg, transparent 0%, transparent 6rem, white 11rem, transparent 11.15rem, transparent 15rem, rgba(255, 255, 255, 0.3) 20rem, transparent 25rem, transparent 27rem, rgba(255, 255, 255, 0.6) 32rem, white 33rem, rgba(255, 255, 255, 0.3) 33.15rem, transparent 38rem, transparent 40rem, rgba(255, 255, 255, 0.3) 45rem, transparent 50rem, transparent 100%); 
  14.     background-clip: text; 
  15.     background-size: 150% 100%; 
  16.     background-repeat: no-repeat; 
  17.     animation: shine 5s infinite linear; 
  18. @keyframes shine { 
  19.  0% { 
  20.   background-position: 50% 0; 
  21.  } 
  22.  100% { 
  23.   background-position: -190% 0; 
  24.  } 

去掉偽元素的 background-clip: text,就能看懂原理:

圖片

CodePen Demo -- shine Text && background-clip[8]

按鈕填充效果

運用這個屬性,我們可以給按鈕實現(xiàn)這樣一種遮罩填充動畫(主要是用于防止文字閃爍):

  1. <div class="btn">Btn</div> 
  1. .btn { 
  2.     position: relative
  3.     color: deeppink; 
  4.     background-color: transparent; 
  5.     border: 3px solid deeppink; 
  6.      
  7.     &::after { 
  8.         content: ''
  9.         position: absolute
  10.         z-index: -1; 
  11.         top: 0; 
  12.         left: 50%; 
  13.         height: 100%; 
  14.         width: 0; 
  15.         background-color: deeppink; 
  16.         transition: width .5s, left .5s; 
  17.     } 
  18.     &:hover { 
  19.         color: white; 
  20.     } 
  21.     &:hover::after { 
  22.         top: 0; 
  23.         left: 0; 
  24.         width: 100%; 
  25.         transition: width .5s, left .5s; 
  26.     } 
  27.  
  28. .btn { 
  29.     background-color: deeppink; 
  30.     background-image: linear-gradient(white, white); 
  31.     background-repeat: no-repeat; 
  32.     background-size: 0% 100%; 
  33.     background-position: center; 
  34.     -webkit-background-clip: text; 
  35.     -webkit-text-fill-color: transparent; 
  36.     transition: background-size .5s; 
  37.  
  38.     &:hover { 
  39.         background-size: 100% 100%; 
  40.     } 

效果如下:

圖片

CodePen Demo -- background-clip:text && 按鈕填充效果[9]

圖片窺探效果

再演示其中一個用法,利用兩個 div 層一起使用,設置相同的背景圖片,父 div 層設置圖片模糊,其中子 div 設置 -webkit-background-clip:text,然后利用 animation 移動子 div ,去窺探圖片。簡單的效果示意圖:

[[410855]]

CodePen Demo -- background-clip: text 遮罩圖片[10]

總結一下

其實還有很多有趣的用法,只有敢想并動手實踐。當然很多人會吐槽這個屬性的兼容性,到如今(2021-07-12),兼容性已經非常好了,主要是在使用的時候記得加上 -webkit- 前綴:

圖片

更多精彩 CSS 技術文章匯總在我的 Github -- iCSS[11] ,持續(xù)更新,歡迎點個 star 訂閱收藏。

如果還有什么疑問或者建議,可以多多交流,原創(chuàng)文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

參考資料

[1]從條紋邊框的實現(xiàn)談盒子模型:

http://www.cnblogs.com/coco1s/p/5895764.html

[2]CodePen Demo - Clip:

https://codepen.io/Chokcoco/pen/WjOBzB

[3]CodePen Demo - clip:

https://codepen.io/Chokcoco/pen/eWRaVJ

[4]CodePen Demo - clip:

https://codepen.io/Chokcoco/pen/oWwRmE

[5]CodePen Demo -- background-clip: text 文字漸變色:

https://codepen.io/Chokcoco/pen/PmjMwz

[6]巧妙地制作背景色漸變動畫!:

http://www.cnblogs.com/coco1s/p/6603403.html

[7]CodePen Demo -- 背景漸變動畫 && 文字裁剪:

https://codepen.io/Chokcoco/pen/xdroGp

[8]CodePen Demo -- shine Text && background-clip:

https://codepen.io/Chokcoco/pen/OJbEOmb

[9]CodePen Demo -- background-clip:text && 按鈕填充效果:

https://codepen.io/Chokcoco/pen/MmoNoq

[10]CodePen Demo -- background-clip: text 遮罩圖片:

https://codepen.io/Chokcoco/pen/LyNmQv

[11]Github -- iCSS:

https://github.com/chokcoco/iCSS

 

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2022-02-22 07:50:10

CSS前端CSS-doodle

2023-01-31 10:23:00

CSS倒影效果

2022-03-31 07:46:17

CSS動畫技巧

2021-07-06 06:07:14

CSS 技巧背景

2019-04-08 08:08:15

JS口令web安全

2022-07-14 07:01:56

Eureka讀鎖線程

2021-07-16 05:59:27

CSS 技巧帶圓角的三角形

2014-09-25 01:31:22

辦公設備智能硬件

2019-04-18 10:09:00

網絡安全網絡安全技術周刊

2010-09-01 13:37:58

CSSclip屬性

2010-09-03 14:00:29

CSSbackground

2010-08-31 10:57:44

clipCSS

2010-09-14 16:04:40

CSSclip屬性

2010-08-25 15:15:52

CSSclip

2012-03-31 10:12:55

CSSWEB

2011-10-21 09:10:12

JavaScript

2021-08-13 09:01:31

Python小游戲Python基礎

2014-01-03 17:18:45

Windows 9開始屏幕
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产999精品久久久 日本视频一区二区三区 | 国产精品欧美一区喷水 | 精品91久久久 | 91免费版在线观看 | 成人三级在线播放 | 日韩视频区 | 一区二区三区在线 | 午夜电影网 | 中文字幕欧美一区 | 国产乱码精品1区2区3区 | 99精品国自产在线观看 | 国产精品一区二 | a级大毛片 | 男人天堂网站 | 日韩精品视频一区二区三区 | 国产高清精品一区二区三区 | 日韩精品在线播放 | 超碰伊人久久 | 看一级黄色毛片 | 欧美综合国产精品久久丁香 | 欧美亚洲国产精品 | 日韩欧美在线一区 | 欧美视频一级 | 99精品一区二区 | 亚洲天堂网站 | 国产成人精品a视频一区www | 国产不卡在线观看 | 国产精品一区二区欧美黑人喷潮水 | 国产黄色av网站 | 2022精品国偷自产免费观看 | 操久久 | 国内精品免费久久久久软件老师 | 超碰成人免费 | 日韩中文字幕视频在线观看 | 亚洲欧美日韩久久久 | 国产一区二区三区久久久久久久久 | 天天舔天天| 91在线精品一区二区 | 日韩一区二区在线播放 | 亚洲三级在线观看 | 天天干精品|