用CSS和SVG在瀏覽器中掩蓋
>屏蔽是一種使您可以在隱藏其餘部分時在屏幕上顯示元素的選定部分或圖像的技術。 Web開發人員可以通過Mask屬性和SVG蒙版元素在瀏覽器中使用此技術。這些功能允許您在瀏覽器中顯示對圖像和其他元素的效果,而無需使用任何形式的圖像編輯軟件。
>在本文中,我將向CSS和SVG屏蔽功能展示,還確保包括有關當前瀏覽器支持問題的一些信息。鑰匙要點
CSS和SVG中的
屏蔽允許使用CSS`mask`屬性或svg`
'元素的元素選擇性可見性。- > CSS掩碼可以利用圖像,梯度或SVG引用,而SVG屏蔽提供了更多使用矢量圖形的控制,並支持顏色和梯度掩碼。
- 瀏覽器支持各不相同:CSS面具主要支持Webkit瀏覽器,而SVG掩碼在包括Firefox和Internet Explorer在內的現代瀏覽器之間具有更廣泛的兼容性。
> >蒙版屬性,例如`bask-image',`bask mode',`bask-repeat`,`bask-position'和`bask-size''和`bask-size'可以單獨設置或合併到速記``為方便起見。
CSS和SVG可以實現 - 高級掩蔽效果,包括動畫和使用文本作為掩碼,增強了Web Design的靈活性和創造力。 >
- >在網絡上掩蓋
- >您可以使用剪輯或掩蔽在網絡上實現掩蔽效果。
- 剪輯涉及在圖像或元素頂部放置封閉的矢量形狀,例如圓或多邊形。形狀後面的圖像的任何部分都是可見的,而形狀邊界之外的任何部分都將被隱藏。形狀的邊界稱為剪輯路徑,您可以使用剪輯路徑屬性來創建它。
css mask屬性
>蒙版是CSS速記屬性,用於整個單個屬性。 讓我們更詳細地仔細研究其中的一些。
>
>蒙版圖像屬性>您可以使用蒙版圖像屬性設置元素的掩碼層圖像。
值無與設置沒有值的值不同。相反,它仍然算作透明的黑色圖像層。
>
>您可以將掩碼圖像設置為URL值。這可以是通往PNG圖像文件,SVG文件或對SVG
以下是一些示例:
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
這是您如何引用svg
.masked-element { mask-image: url(#mask1); }
梯度圖像也是掩碼圖像屬性的合適值:
.masked-element { mask-image: linear-gradient(black 0%, transparent 100%); }
>帶有蒙版模式,您可以將蒙版層圖像設置為alpha蒙版或亮度蒙版。
一個方便的alpha通道示例是一個帶有黑色和透明區域的PNG圖像。蒙版元素將通過蒙版圖像的黑色部分顯示,其alpha值為一個。透明部分下方的其他所有內容都將隱藏為零。
我將使用此png圖像作為我的alpha面具:>並在下面的JPG圖像上執行掩蔽操作:
>

>

.masked-element { mask-image: url(alpha-mask.png); mask-mode: alpha; }
您要掩蓋的元素的區域(由面具的白色像素覆蓋)將介紹。面具的透明像素所覆蓋的蒙版元素的部分將被隱藏。

>
這是代碼:
>“ mask-repeat屬性”
> mask-repeat的工作非常類似於背景重複屬性。它設置了它們的大小和位置後,它會控制蒙版層圖像的平鋪。
可能的值為:
- > no-repeat:在可用的空間中未重複掩碼層圖像。 重複X:沿X坐標重複掩碼層圖像。
- 重複Y:掩碼層圖像在Y坐標下重複。 >空間:重複掩碼層圖像並在整個可用區域間隔範圍。
- 圓形:在可用區域中重複掩碼層圖像多次。如果整數不適合可用空間,則將圖像縮放到它。
- 例如,這是我打算用作掩模的圖像: >
- 下面的代碼段將蒙版重複屬性設置為空間的值:
導致以下掩蔽效果:

>“蒙版位置屬性”
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
>您可以使用蒙版位置屬性定位蒙版層圖像。您可以將此屬性設置為與更熟悉的CSS背景圖像屬性相同的值。它的初始值是中心。
例如,如果要將蒙版映像層放在視口的左上角,請將蒙版位置屬性設置為
的值
這是瀏覽器中上面的代碼的樣子:
>將上面的蒙版位置屬性的值更改為> 100%100%,在視口右下方顯示蒙版層圖像:
.masked-element { mask-image: url(#mask1); }
>您可以使用Mask-size屬性快速設置蒙版層圖像的大小,該屬性接受與更熟悉的CSS背景大小屬性相同的值。

>設置蒙版大小以包含,將掩蓋層圖像縮放到最大尺寸,以使其寬度和高度都可以安裝在掩模定位區域內:
>
您可以在下面的Codepen上看到這些演示:
>>請參閱codepen上的sitepoint(@sitepoint)的筆CSS蒙版示例。

如上所述,您可以通過將蒙版圖像屬性的每個值與逗號分開,可以在同一元素上使用多個掩碼層。這些圖層被堆疊在另一層上,最後一層首先顯示在屏幕上。
例如:
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
bask2.png在> mask1.png 的頂部分層。
>“蒙版複合屬性”使您可以根據以下關鍵字的值組合不同的掩碼層:add:
- > bask2.png
- 繪製在> mask1.png 的頂部 減去:顯示不重疊 bask1.png
- 的
> bask2.png 的部分。因此,瀏覽器至少在暫時不支持標準關鍵字,因此您需要使用相應的合成操作員關鍵字源 Intersect:顯示 的部分重疊 > bask1.png - 。但是,Webkit瀏覽器是唯一支持CSS掩碼的瀏覽器的瀏覽器,即使使用了非標準的複合源關鍵字,也似乎在屏幕上沒有顯示任何內容。
排除:顯示不重疊的
bask1.png 和bask2.png 的部分。再一次,由於標準關鍵字尚無支持,因此您使用合成操作員XOR更好了。 - >您也可以在下面的Codepen演示中查看實時演示:> >請參閱codepen上的sitepoint(@sitepoint)的筆CSS蒙版組合。
>您可以使用Mask進行控制CSS掩蓋操作的所有屬性。
這是完整的面具速記:
> mask-origin和mask-clip工作,例如更熟悉的背景 - 原始屬性和背景折疊屬性。
>儘管您可以在蒙版速記中重新排序屬性,但您需要在蒙版屬性之後設置蒙版屬性,並由“/”符號隔開。此外,設置掩碼大小而不設置蒙版位置將導致無效聲明。
>>最後,由於您無法在掩碼屬性上指定的任何值都設置回其初始默認值,因此當您需要重置任何單個屬性時,使用掩碼非常方便。
svg掩碼元素.masked-element { mask-image: url(#mask1); }
可擴展的向量圖形或簡稱SVG是一種基於XML的語言,用於標記圖形。
您可以在SVG文檔中使用> SVG可以做的另外一件很酷的事情是使用文本掩蓋頁面上的其他元素。
>讓我們仔細觀察這些可能性。
>
在HTML元素上使用SVG
在編寫時,使用內聯SVG圖形內的
與以下CSS:
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
>在上面的代碼中,我包含了一個
>最後,我在CSS蒙版屬性中引用了SVG
>僅通過為頁面背景和蒙版圖像添加其他一些樣式聲明,您就可以實現出非常戲劇性的效果,如下面的效果:

請注意,圓面膜的部分如何填充梯度的白色陰影,使蒙版的圖像通過。相反,該部分充滿了梯度的黑色色調,隱藏了掩蓋的圖像。
這是在codepen上進行的實時演示(請記住,它只能在firefox上使用!)。
>請參閱codepen上的sitepoint(@sitepoint)的inline svg掩碼元素的筆蒙版。
在SVG圖形上使用SVG
>您可以在上一個示例中使用相同的SVG 元素,但是這次掩蓋了SVG圖形而不是HTML元素。優點是瀏覽器支持更好,包括WebKit瀏覽器和最新的IE。
>在下面的摘要中,我將要將圖像放置在SVG元素中,然後將CSS蒙版屬性應用於它。 CSS蒙版屬性引用了帶有
這是負責CSS中掩蓋操作的片段:
.masked-element { mask-image: url(#mask1); }
看Codepen演示:
.masked-element { mask-image: linear-gradient(black 0%, transparent 100%); }
掩蓋
>您可以使用SVG蒙版內的文本元素執行掩蔽操作:
上面的摘要在SVG蒙版內添加了一個黑色SVG文本元素,並使用CSS蒙版屬性將其應用於淺藍色的SVG橢圓形。 橢圓形形狀後面的任何內容(在這種情況下,它是身體的背景圖像)將通過文本顯示。結果看起來像這樣:
完整的代碼可在Codepen上使用:
>請參閱codepen上的sitepoint(@sitepoint)的筆svg文本蒙版。
>動畫蒙版
>您可以使用CSS Transition和KeyFrame Animation動畫掩碼位置和掩模大小。
下面是星形PNG掩碼圖像的基本關鍵幀動畫示例。
這是相關的代碼段:

>遮罩操作使用速記蒙版屬性:
/* masking with two comma-separated values */ .masked-element { mask-image: url(mask.png), none; } /* using external svg graphic as mask */ .masked-element { mask-image: url(mask.svg); }
元素上的.Animate類,使用CSS變換和動畫為星形圖像添加了運動:
.masked-element { mask-image: url(#mask1); }
>啟動像Chrome這樣的WebKit瀏覽器,並在Codepen上查看以下實時演示:
.masked-element { mask-image: linear-gradient(black 0%, transparent 100%); }

>用CSS
對SVG掩碼元素進行動畫動畫>您可以使用SVG 標籤上添加掩碼效果,然後使用CSS進行動畫。
這是一個快速的編碼器演示:在任何瀏覽器上都可以看到動畫,但是屏蔽僅在Firefox中呈現:>
>請參閱sitepoint(@sitepoint)上的html元素上的pen動畫svg蒙版。
好消息是,如果您將SVG掩碼應用於Inline SVG圖形,瀏覽器支持立即Sky-Rockets。僅使用SVG查看相同的動畫演示:
>請參閱sitepoint(@sitepoint)在codepen上的svg元素上的pen動畫svg蒙版。
>瀏覽器對蒙版屬性的支持
>在本文中,我介紹了瀏覽器支持問題。寫作時情況的簡單崩潰,看起來像這樣:
在HTML元素上使用CSS Mask屬性在WebKit瀏覽器上使用-Webkit- vendor前綴。 HTML元素上僅支持Firefox上的HTML元素上的Inline SVG掩碼元素。
SVG元素上的Inline SVG屏蔽元素在Webkit瀏覽器以及Firefox和最新的Internet Explorer中支持。 >
Yoksel的這款出色的Codepen演示就瀏覽器的支持而言提供了最先進的視覺插圖。
>我可以使用網站上的瀏覽器支持兼容性表提供了更多詳細信息和鏈接到更多資源。
>儘管當前對CSS蒙版的瀏覽器支持並不是很好,但是如果您將此功能用作一些裝飾元素的增強功能,但不支持瀏覽器的用戶甚至不會注意到它們會錯過。
>>最後,使用SVG
- > CSS蒙版模塊級別1 - W3C編輯器的草稿
- 在CSS-tricks上的CSS中剪切和掩蓋
- codrops css css用掩模圖像 引用
- > svg
在mdn 上
Jakob Jenkov - SVG面具 Dirk Schulze的
- css掩蓋。
- 您知道要分享的網絡有很酷的掩蔽效果嗎?點擊評論框,讓我知道。
>在CSS和SVG掩蔽上的常見問題(FAQ)
> CSS和SVG掩碼之間有什麼區別?
CSS和SVG掩蔽均使您可以隱藏或揭示元素的部分。但是,他們的方法和能力有所不同。 CSS蒙版使用圖像作為掩模層,其中掩碼圖像的alpha通道決定了元素的可見性。另一方面,SVG屏蔽使用矢量圖形作為掩模層,該圖形提供了更大的靈活性和控制掩碼的形狀和大小。 SVG掩蔽還支持顏色和梯度掩模,CSS掩蓋不可能。>
>如何使用SVG?為您的網絡元素添加獨特的視覺效果。要創建帶有SVG的梯度蒙版,您需要定義蒙版元素內的線性級別或徑向級別元素。梯度元素應至少具有兩個停止元素,該元素沿梯度沿不同點的顏色和不透明度定義。
我可以使用CSS和SVG屏蔽嗎?
是的,您可以使用CSS並共同掩蓋以創建複雜的掩蔽效果。您可以將CSS掩碼應用於元素,然後將SVG掩碼應用於同一元素。該元素的最終可見性是由兩個掩碼的組合確定的。
為什麼我的CSS掩碼不在Internet Explorer中工作?
CSS掩碼在Internet Explorer中不支持。如果您需要支持Internet Explorer,則應改用SVG掩碼。在所有主要瀏覽器中都支持SVG屏蔽,包括Internet Explorer。對於CSS掩蓋,您可以使用CSS動畫或過渡來對掩碼圖像屬性進行動畫動畫。對於SVG屏蔽,您可以使用SVG動畫來對蒙版元素進行動畫。
>我可以將文本用作帶有CSS或SVG的掩碼,或者是的,是的,您可以將文本用作具有CSS和SVG的掩碼。對於CSS掩碼,您可以將文本圖像用作掩模圖像。對於SVG掩蔽,您可以將文本元素用作掩模元素。
>如何使用CSS或SVG?
>
徑向梯度函數作為掩模圖像。要使用SVG創建一個圓形掩碼,您可以將圓元素用作掩模元素。 >如何創建具有多個形狀的複雜掩碼?來創建具有多種形狀的複雜掩碼,您可以使用SVG掩碼。 SVG屏蔽允許您將多個形狀元素(例如Rect,Circle,Polygon等)用作掩模元素。您可以獨立定位和大小這些形狀以創建一個複雜的掩碼。
>我可以將視頻用作帶有CSS或svg的掩碼或SVG?
css masking basking支持視頻蒙版。您可以通過將蒙版圖像屬性設置為視頻URL來使用視頻作為掩模圖像。 SVG掩蔽不支持視頻掩碼。
>如何調整用CSS或SVG或SVG的掩碼不透明度?面具圖像。您可以通過編輯掩碼圖像來調整不透明度。對於SVG掩蔽,掩模的不透明度取決於掩模元素的填充性和中風 - 暢通性。您可以通過更改這些屬性來調整不透明度。
>以上是用CSS和SVG在瀏覽器中掩蓋的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢

我關注的一件事是Lea Verou' s conic-Gradient()Polyfill的功能列表是最後一項:
