自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

妙用CSS混合模式實現(xiàn)文字鏤空波浪效果

開發(fā) 前端
通過混合模式,我們巧妙的實現(xiàn)了這樣一個文字鏤空的波浪效果。通過混合模式的特性,過濾掉了效果中一些我們不希望看見的顏色,只讓正確的顏色在正確的地方出現(xiàn)。

[[426232]]

本文將介紹一個小技巧,通過混合模式 mix-blend-mode 巧妙的實現(xiàn)文字的鏤空效果。

起因

一日,一群友私聊問我。如何使用 CSS 實現(xiàn)下述效果,一個文字的波浪效果:

圖片

我當(dāng)時想都沒想,就回答道,這個很簡單啊。

熟練的打開 CodePen,一頓操作,好像事情沒有那么簡單。想要用純 CSS 實現(xiàn)起來非常的棘手。

純 CSS 實現(xiàn)波浪效果

在進入正題前,我們先復(fù)習(xí)下,使用 CSS 實現(xiàn)波浪,如果不是在鏤空的文字內(nèi),而是在一個 div 容器內(nèi),可以使用滾動大圓的方式,類似于這樣:

圖片

容器應(yīng)用 overflow: hidden,就能得到這樣的效果:

圖片

對這個技巧還不理解,可以猛擊這篇文章:純 CSS 實現(xiàn)波浪效果![1]

如何在文字中應(yīng)用此效果

OK,回歸正題,那么如何在文字中應(yīng)用此效果呢?

問題出在哪里呢?

我們首先嘗試下,白底黑字,加上該效果:

  1. <div class="g-container"
  2.     <p>TEXT WAVE</p> 
  3. </div> 

 核心的 CSS 偽代碼如下:

  1. p { 
  2.     background: #fff; 
  3.     color: #000; 
  4.      
  5.     &::before, 
  6.     &::after { 
  7.         content: ""
  8.         position: absolute
  9.         border-radius: 45% 48% 43% 47%; 
  10.         background: rgba(3, 169, 244, .85); 
  11.         animation: rotate 10s infinite linear; 
  12.     } 
  13.      
  14.     &::after { 
  15.         border-radius: 43% 47% 44% 48%; 
  16.         animation: rotate 10s infinite .5s linear; 
  17.     } 
  18.  
  19. @keyframes rotate { 
  20.     0% { 
  21.         transform: translate(-50%, -50%) rotate(0); 
  22.     } 
  23.     100% { 
  24.         transform: translate(-50%, -50%) rotate(360deg); 
  25.     } 

效果大概是這樣:

圖片

當(dāng)然,我們也可以把它放置到文字層下面,更直觀點:

  1. p { 
  2.     ... 
  3.    
  4.     &::before, 
  5.     &::after { 
  6.         ... 
  7.       + z-index: -1;   
  8.     } 

Oh,太糟糕了,僅僅這樣是沒法實現(xiàn) -- 只是文字被鏤空,文字內(nèi)部才有波浪效果。

嘗試使用讓文字透明

我們要嘗試讓文字透明

  1. 可以使用 color: transparent 使文字透明
  2. 嘗試使用 background-clip 實現(xiàn)

emmm,逐一嘗試下。如果字體設(shè)置為透明,由于

設(shè)置了白色底色,字體顏色也就會變成白色。整體就是一幅白,失敗。

那如果背景設(shè)置為黑色,并且設(shè)置 background-clip: text 呢?字體依然是黑色,波浪依舊無法進到鏤空的字體中~

  1. p { 
  2.   + background-clip: text; 

也就是這樣:

強大的混合模式

看來此路不通,只能另辟蹊徑。

在 CSS 中,其他能對顏色進行處理的,一是濾鏡 filter,另外一個就是混合模式 mix-blend-mode,在這里,腦袋里快速閃過各個濾鏡,應(yīng)該都不行。但是混合模式,倒是能夠嘗試一下。

在 CSS 中也有混合模式(mix-blend-mode、background-blend-mode),混合模式最常見于 photoshop 中,是 PS 中十分強大的功能之一,目前在 CSS 中得到了非常好的支持。

我們嘗試給兩個大圓,添加混合模式,在當(dāng)前的配色下,也就是白底黑字的情況下,濾掉白底下的藍色。

圖片

Wow,當(dāng)給兩個波浪圓形加上 mix-blend-mode: lighten 時,成功的在白底上過濾掉了藍色,只在黑色字體上能夠看到藍色波浪的效果。

當(dāng)然,另外一個混合模式 mix-blend-mode: screen 也能達到類似的效果:

至此,通過混合模式,我們巧妙的實現(xiàn)了這樣一個文字鏤空的波浪效果。通過混合模式的特性,過濾掉了效果中一些我們不希望看見的顏色,只讓正確的顏色在正確的地方出現(xiàn)。

完整的代碼你可以猛擊:CSS 靈感 - 使用混合模式疊加實現(xiàn)文字波浪效果[2]

最后

好了,本文到此結(jié)束,希望對你有幫助 :)

本文沒有詳細(xì)的去講混合模式 mix-blend-mode 的一些基礎(chǔ)用法,感興趣的同學(xué)可以自行研究。

參考資料

[1]純 CSS 實現(xiàn)波浪效果!:

https://github.com/chokcoco/iCSS/issues/22

[2]CSS 靈感 - 使用混合模式疊加實現(xiàn)文字波浪效果:

https://csscoco.com/inspiration/#/./blendmode/mixblend-text-wave-effect

責(zé)任編輯:姜華 來源: iCSS前端趣聞
相關(guān)推薦

2021-09-28 06:00:01

BackgroundCSS技巧

2023-05-18 09:25:20

background花式文字效果

2022-07-19 06:20:47

CSSbackground

2010-09-13 14:09:35

CSS文字

2023-01-03 10:37:22

CSS動畫

2023-06-05 09:28:32

CSS漸變

2021-08-30 06:20:39

CSS 技巧3D 效果

2023-12-25 12:57:00

樹形結(jié)構(gòu)CSScounters

2021-05-18 06:22:39

CSS 制作波浪技巧

2023-12-04 08:06:41

CSS文字效果

2009-07-30 09:42:29

CSS實現(xiàn)文字旋轉(zhuǎn)

2022-12-12 11:11:05

2024-01-30 09:21:29

CSS文字效果文字裝飾

2021-09-30 08:25:28

CSS 技巧酷炫線條光影

2024-03-20 09:40:27

動畫技巧CSS逐幀動畫

2010-09-10 15:16:51

CSSdisplay

2010-09-09 11:16:06

CSS交互

2010-09-09 12:49:58

鼠標(biāo)懸停tip效果CSS

2010-09-14 12:58:41

DIV+CSS圓角

2010-09-07 14:53:45

Chroma屬性CSS
點贊
收藏

51CTO技術(shù)棧公眾號