談談一些有趣的CSS題目(十六)-- 奇妙的 background-clip: text

開本系列,談談一些有趣的?CSS?題目,題目類型天馬行空,想到什么說什么,不僅為了拓寬一下解決問題的思路,更涉及一些容易忽視的 CSS 細節。

解題不考慮兼容性,題目天馬行空,想到什么說什么,如果解題中有你感覺到生僻的 CSS 屬性,趕緊去補習一下吧。

不斷更新,不斷更新,不斷更新,重要的事情說三遍。

談談一些有趣的CSS題目(一)-- 左邊豎條的實現方法

談談一些有趣的CSS題目(二)-- 從條紋邊框的實現談盒子模型

談談一些有趣的CSS題目(三)-- 層疊順序與堆棧上下文知多少

談談一些有趣的CSS題目(四)-- 從倒影說起,談談 CSS 繼承 inherit

談談一些有趣的CSS題目(五)-- 單行居中,兩行居左,超過兩行省略

談談一些有趣的CSS題目(六)-- 全兼容的多列均勻布局問題

談談一些有趣的CSS題目(七)-- 消失的邊界線問題

談談一些有趣的CSS題目(八)-- 純CSS的導航欄Tab切換方案

談談一些有趣的CSS題目(九)-- 巧妙的實現 CSS 斜線

談談一些有趣的CSS題目(十)-- 結構性偽類選擇器

談談一些有趣的CSS題目(十一)-- reset.css知多少

談談一些有趣的CSS題目(十二)--?深入探討 CSS 特性檢測 @supports 與 Modernizr

談談一些有趣的CSS題目(十三)--?巧妙地制作背景色漸變動畫!

談談一些有趣的CSS題目(十四)-- 純 CSS 方式實現 CSS 動畫的暫停與播放!

談談一些有趣的CSS題目(十五)--?談談 CSS 關鍵字 initial、inherit 和 unset

所有題目匯總在我的?Github?。

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

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

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

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

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

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

?

何為?-webkit-background-clip:text

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

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

<div>Clip</div><style>
div {font-size: 180px;font-weight: bold;color: deeppink;background: url($img) no-repeat center center;background-size: cover;
}
</style>

效果如下:

CodePen Demo

?

使用?-webkit-background-clip:text

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

div {font-size: 180px;font-weight: bold;color: deeppink;background: url($img) no-repeat center center;background-size: cover;-webkit-background-clip: text;
}

效果如下:

CodePen Demo

看到這里,可能有人就納悶了,wtf啥玩意呢,這不就是文字設置?color?屬性嘛。

?

將文字設為透明?color: transparent

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

div {color: transparent;-webkit-background-clip: text;
}

效果如下(請在 Chrome 內核瀏覽器下觀看):

CodePen Demo

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

?

各類效果制作

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

  1. 大大增強了文字的顏色填充選擇
  2. 文字顏色的動畫效果
  3. 配合其他元素,實現一些其他巧妙的用法

?

實現文字漸變效果

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

效果如下(請在 Chrome 內核瀏覽器下觀看):

CodePen Demo

?

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

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

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

效果如下(請在 Chrome 內核瀏覽器下觀看):?

CodePen Demo

?

圖片窺探效果

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

效果如下(請在 Chrome 內核瀏覽器下觀看):

CodePen Demo

?

其實還有很多有趣的用法,只要敢想并動手實踐,會發現 CSS 真的樂趣挺多的。

當然很多人會吐槽這個屬性的兼容性,確實,我個人覺得前端現在的生態有一點面向未來編程的感覺(調戲)。不過提前掌握總體而言利大于弊,多多拓寬自己的視野。

到此本文結束,如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282121.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282121.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282121.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第五周軟件工程作業-每周例行報告

一、PSP T名稱C內容ST開始時間ED結束時間中斷時間/min實際時間/minScrum會議第一次Scrum會議10月13日11:3010月13日12:10040第二次Scrum會議10月14日15:3010月14日15:55025第三次Scrum會議10月15日13:3010月15日14:05035第四次Scrum會議10月16日11:3010月16日13:00090第五次Scr…

MySQL - 觸發器

一、概述 Mysql 允許通過觸發器、存儲過程、函數的形式來存儲代碼。 觸發器可以讓你在執行 Insert、Update、Delete的時候&#xff0c;執行一些特定的操作。可以在Mysql中指定是在Sql語句執行之前觸發還是執行后觸發。 二、使用觸發器需要注意的點 對每一個表的每一個事件&a…

Docker Desktop 可以直接啟用Kubernetes 1.25 了

作為目前事實上的容器編排系統標準&#xff0c;K8s 無疑是現代云原生應用的基石&#xff0c;很多同學入門可能直接就被卡到第一關&#xff0c;從哪去弄個 K8s 的環境&#xff0c; Docker Desktop 自帶了Kubernetes 服務&#xff0c;但是在過往的經驗中就是用梯子也安裝不了&…

截取url的host_java正則表達式獲取url的host示例

java正則表達式獲取url的host示例 復制代碼 代碼如下: public static String getHost(String url){if(url==null||url.trim().equals("")){return ""; } String host = ""; Pattern p = Pattern.compile("(?<=//|)((\\w)+\\.)+\\w+&qu…

MySQL - 視圖

一、概述 Mysql 5.0 版本后開始引入視圖。視圖本身是一個虛擬表&#xff0c;不存放任何數據。在使用 sql 語句訪問視圖的時候&#xff0c;他返回的數據都是在查詢過程中從其他表動態生成的。 二、使用視圖   1、創建視圖 CREATE VIEW comic_view as SELECT comic_id,name,pe…

Linux環境下壓縮與解壓命令大全

tar命令 解包&#xff1a;tar zxvf FileName.tar 打包&#xff1a;tar czvf FileName.tar DirName gz命令 解壓1&#xff1a;gunzip FileName.gz 解壓2&#xff1a;gzip -d FileName.gz 壓縮&#xff1a;gzip FileName .tar.gz 和 .tgz 解壓&#xff1a;tar zxvf FileName.tar.…

Centos 磁盤管理及配額管理

實驗內容&#xff1a;一.添加兩塊硬盤&#xff0c;使用LVM做成VG01組&#xff0c;在該VG中新建兩個LV。二.將這兩個LV格式化為ext4/xfs&#xff0c;開機自動掛載到系統mnt1,mnt2目錄下。三.lv02開啟磁盤配額功能&#xff0c;用來進行用戶與組分配額的實驗。四.在系統里添加用戶…

OnionArch - 采用DDD+CQRS+.Net 7.0實現的洋蔥架構

博主最近失業在家&#xff0c;找工作之余&#xff0c;看了一些關于洋蔥&#xff08;整潔&#xff09;架構的資料和項目&#xff0c;有感而發&#xff0c;自己動手寫了個洋蔥架構解決方案&#xff0c;起名叫OnionArch。基于最新的.Net 7.0 RC1, 數據庫采用PostgreSQL, 目前實現了…

spark寫出分布式的訓練算法_利用 Spark 和 scikit-learn 將你的模型訓練加快 100 倍...

在 Ibotta&#xff0c;我們訓練了許多機器學習模型。這些模型為我們的推薦系統、搜索引擎、定價優化引擎、數據質量等提供動力。它們在與我們的移動應用程序交互時為數百萬用戶做出預測。當我們使用 Spark 進行數據處理時&#xff0c;我們首選的機器學習框架是 scikit-learn。隨…

理解LinkedHashMap

1. LinkedHashMap概述&#xff1a;LinkedHashMap是HashMap的一個子類&#xff0c;它保留插入的順序&#xff0c;如果需要輸出的順序和輸入時的相同&#xff0c;那么就選用LinkedHashMap。LinkedHashMap是Map接口的哈希表和鏈接列表實現&#xff0c;具有可預知的迭代順序。此實現…

MySQL - 鎖

一、什么是鎖 鎖是數據庫系統區別于文件系統的一個關鍵特性。鎖機制用于管理對共享資源的并發訪問。 二、MySQL 不同存儲引擎支持的鎖機制 存儲引擎支持的鎖類型Myisam表鎖Innodb行鎖、表鎖Memory表鎖BDB頁鎖、表鎖表鎖&#xff1a;直接鎖住的是一個表&#xff0c;開銷小&…

數據庫時區那些事兒 - MySQL的時區處理

原文地址 當JVM時區和數據庫時區不一致的時候&#xff0c;會發生什么&#xff1f;這個問題也許你從來沒有注意過&#xff0c;但是當把Java程序容器化的時候&#xff0c;問題就浮現出來了&#xff0c;因為目前幾乎所有的Docker Image的時區都是UTC。本文探究了MySQL及其JDBC驅動…

java_函數的重載

函數的重載&#xff08;Overload&#xff09;概念&#xff1a;在同一個類中&#xff0c;允許存在一個以上的同名函數&#xff0c;只要他們的參數個數或者參數類型不同即可。函數功能一樣&#xff0c;僅僅是參與運算的未知內同不同時&#xff0c;可以定義多函數&#xff0c;卻使…

全新升級的AOP框架Dora.Interception[2]: 基于約定的攔截器定義方式

Dora.Interception&#xff08;github地址&#xff0c;覺得不錯不妨給一顆星&#xff09;有別于其他AOP框架的最大的一個特點就是采用針對“約定”的攔截器定義方式。如果我們為攔截器定義了一個接口或者基類&#xff0c;那么攔截方法將失去任意注冊依賴服務的靈活性。除此之外…

redis watch使用場景_redis不得不會的事務玩法

我們都知道redis追求的是簡單&#xff0c;快速&#xff0c;高效&#xff0c;在這種情況下也就拒絕了支持window平臺&#xff0c;學sqlserver的時候&#xff0c;我們知道事務還算是個比較復雜的東西&#xff0c;所以這吊毛要是照搬到redis中去&#xff0c;理所當然redis就不是那…

加快Android Studio的編譯速度

從Eclipse切換到Android Studio后&#xff0c;感覺Android Studio的build速度比Eclipse慢很多&#xff0c;以下幾個方法可以提高Android Studio的編譯速度使用Gradle 2.4Gradle 2.4對執行性能有很大的優化&#xff0c;但Android Studio現在默認使用的是Gradle 2.2,所以我們需要…

開發中 MySQL 規范

一、建表規范 1、數據庫名、表名、字段名必須使用小寫字母或數字&#xff0c;并且禁止以數字開頭 示例&#xff1a;goods_category、agent_operate_201812_log 2、數據庫名、表名、字段名要做到見名識意 示例&#xff1a;goods_category&#xff0c;不能 gc 3、配置表建議以 …

PaddleOCR在 Linux下的webAPI部署方案

很多小伙伴在使用OCR時都希望能采用API的方式調用&#xff0c;這樣就可以跨端跨平臺了。本文將介紹一種基于python的PaddleOCR識別WebAPI部署方案。喜歡的可以關注公眾號&#xff0c;獲取更多內容。一、 Linux環境下部署1.環境要求操作系統&#xff1a;CenterOS7&#xff1b;主…

影響程序員生涯的三個錯誤觀念,你千萬不要犯!

程序員在社會上&#xff0c;到底是怎樣一個生活群體&#xff1f;是否能找到自己方向&#xff1f;其實&#xff0c;路一直都在那里&#xff0c;只是你看不到而已&#xff01; 當初的你&#xff0c;可能一直被一些技術牽著鼻子走&#xff0c;并不是自己在做著自己想做的&#xff…

心電圖計算心率公式_心電圖到底能反應啥問題,看過之后你也能當“醫生”

只要是經歷過健康體檢的健康人&#xff0c;或者做過手術的患者&#xff0c;基本都做過心電圖檢查。都說久病成醫&#xff0c;所以有些人對血、尿常規等各項檢查的結果都門清兒得很&#xff0c;最起碼看一眼也能說出個大概齊。偏偏心電圖這種常做的檢查&#xff0c;不但老病號如…