搜尋
首頁web前端css教學用CSS和SVG在瀏覽器中掩蓋

用CSS和SVG在瀏覽器中掩蓋

>屏蔽是一種使您可以在隱藏其餘部分時在屏幕上顯示元素的選定部分或圖像的技術。 Web開發人員可以通過Mask屬性和SVG蒙版元素在瀏覽器中使用此技術。這些功能允許您在瀏覽器中顯示對圖像和其他元素的效果,而無需使用任何形式的圖像編輯軟件。

>在本文中,我將向CSS和SVG屏蔽功能展示,還確保包括有關當前瀏覽器支持問題的一些信息。 > 在撰寫本文時,大多數代碼示例僅在Webkit瀏覽器中工作,而基於SVG的面具似乎享有更廣泛的瀏覽器支持。因此,如果您想嘗試示例,建議您使用像Chrome這樣的Webkit瀏覽器。

鑰匙要點

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的靈活性和創造力。
  • >
  • >在網絡上掩蓋
  • >您可以使用剪輯或掩蔽在網絡上實現掩蔽效果。
  • 剪輯涉及在圖像或元素頂部放置封閉的矢量形狀,例如圓或多邊形。形狀後面的圖像的任何部分都是可見的,而形狀邊界之外的任何部分都將被隱藏。形狀的邊界稱為剪輯路徑,您可以使用剪輯路徑屬性來創建它。 > 使用PNG映像,CSS梯度或SVG元素來隱藏頁面上的某些部分或其他元素。您可以使用CSS蒙版屬性來完成此操作。
> 在本文中,我將專注於使用CSS蒙版屬性和SVG 元素掩蓋。

css mask屬性

>蒙版是CSS速記屬性,用於整個單個屬性。 讓我們更詳細地仔細研究其中的一些。

>

>蒙版圖像屬性

>您可以使用蒙版圖像屬性設置元素的掩碼層圖像。

值無與設置沒有值的值不同。相反,它仍然算作透明的黑色圖像層。

>

>您可以將掩碼圖像設置為URL值。這可以是通往PNG圖像文件,SVG文件或對SVG 元素的引用的路徑。您可以通過添加由逗號分隔的相應數量的URL值來設置多個掩碼圖像層。

以下是一些示例:

/* 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 元素,其ID > bask1

>
.masked-element {
  mask-image: url(#mask1);
}

梯度圖像也是掩碼圖像屬性的合適值:>

.masked-element {
  mask-image: linear-gradient(black 0%, transparent 100%);
}
> mask模式屬性

>帶有蒙版模式,您可以將蒙版層圖像設置為alpha蒙版或亮度蒙版。

alpha蒙版是具有alpha通道的圖像。更詳細地說,alpha通道是每個像素數據中包含的透明信息。將蒙版模式屬性設置為alpha的掩蔽操作將使用圖像的alpha值作為掩碼值。

一個方便的alpha通道示例是一個帶有黑色和透明區域的PNG圖像。蒙版元素將通過蒙版圖像的黑色部分顯示,其alpha值為一個。透明部分下方的其他所有內容都將隱藏為零。

我將使用此png圖像作為我的alpha面具:

>並在下面的JPG圖像上執行掩蔽操作:

>

用CSS和SVG在瀏覽器中掩蓋這是魔術發生的地方:

>

用CSS和SVG在瀏覽器中掩蓋>這就是瀏覽器中結果的樣子:

.masked-element {
  mask-image: url(alpha-mask.png);
  mask-mode: alpha;
}
亮度蒙版將圖像的亮度值用作掩模值。像上面的png圖像 - 但在白色中 - 是亮度面具的一個很好的例子:

您要掩蓋的元素的區域(由面具的白色像素覆蓋)將介紹。面具的透明像素所覆蓋的蒙版元素的部分將被隱藏。 > 用CSS和SVG在瀏覽器中掩蓋>將蒙版模式屬性設置為亮度,並將上圖作為我的掩碼,將顯示與以前相同的結果。

>

這是代碼:用CSS和SVG在瀏覽器中掩蓋

>“ mask-repeat屬性”

> mask-repeat的工作非常類似於背景重複屬性。它設置了它們的大小和位置後,它會控制蒙版層圖像的平鋪。

可能的值為:

  • > no-repeat:在可用的空間中未重複掩碼層圖像。
  • 重複X:沿X坐標重複掩碼層圖像。
  • 重複Y:掩碼層圖像在Y坐標下重複。
  • >空間:重複掩碼層圖像並在整個可用區域間隔範圍。
  • 圓形:在可用區域中重複掩碼層圖像多次。如果整數不適合可用空間,則將圖像縮放到它。
  • 例如,這是我打算用作掩模的圖像:
  • >
  • 下面的代碼段將蒙版重複屬性設置為空間的值:

導致以下掩蔽效果:用CSS和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);
}

>您可以使用蒙版位置屬性定位蒙版層圖像。您可以將此屬性設置為與更熟悉的CSS背景圖像屬性相同的值。它的初始值是中心。

例如,如果要將蒙版映像層放在視口的左上角,請將蒙版位置屬性設置為用CSS和SVG在瀏覽器中掩蓋> 0 0 0

的值

這是瀏覽器中上面的代碼的樣子:>

>將上面的蒙版位置屬性的值更改為> 100%100%,在視口右下方顯示蒙版層圖像:>

.masked-element {
  mask-image: url(#mask1);
}
>“蒙版”屬性

>您可以使用Mask-size屬性快速設置蒙版層圖像的大小,該屬性接受與更熟悉的CSS背景大小屬性相同的值。 用CSS和SVG在瀏覽器中掩蓋> 例如,將蒙版大小設置為50%,以其完整寬度的50%顯示掩碼層圖像:

>設置蒙版大小以包含,將掩蓋層圖像縮放到最大尺寸,以使其寬度和高度都可以安裝在掩模定位區域內:

> 用CSS和SVG在瀏覽器中掩蓋

您可以在下面的Codepen上看到這些演示:

>

>請參閱codepen上的sitepoint(@sitepoint)的筆CSS蒙版示例。

用CSS和SVG在瀏覽器中掩蓋組合蒙版層

如上所述,您可以通過將蒙版圖像屬性的每個值與逗號分開,可以在同一元素上使用多個掩碼層。這些圖層被堆疊在另一層上,最後一層首先顯示在屏幕上。

例如:用CSS和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);
}
在上面的摘要中,

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蒙版組合。
> shorthand屬性

>您可以使用Mask進行控制CSS掩蓋操作的所有屬性。

這是完整的面具速記:

> mask-origin和mask-clip工作,例如更熟悉的背景 - 原始屬性和背景折疊屬性。

>儘管您可以在蒙版速記中重新排序屬性,但您需要在蒙版屬性之後設置蒙版屬性,並由“/”符號隔開。此外,設置掩碼大小而不設置蒙版位置將導致無效聲明。

>

>最後,由於您無法在掩碼屬性上指定的任何值都設置回其初始默認值,因此當您需要重置任何單個屬性時,使用掩碼非常方便。

svg掩碼元素
.masked-element {
  mask-image: url(#mask1);
}

可擴展的向量圖形或簡稱SVG是一種基於XML的語言,用於標記圖形。

您可以在SVG文檔中使用元素來為HTML元素和其他SVG圖形添加​​掩碼效果。

> SVG可以做的另外一件很酷的事情是使用文本掩蓋頁面上的其他元素。

>讓我們仔細觀察這些可能性。

>

在HTML元素上使用SVG 元素

在編寫時,使用內聯SVG圖形內的元素掩蓋HTML元素僅在Firefox瀏覽器中起作用。這是一個示例:

與以下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);
}

>在上面的代碼中,我包含了一個元素,其ID為>>>>> 。在面具內部,我放置了一個黑色和白色梯度,ID為 grad和一個圓形形狀,該梯度將梯度用作其填充顏色。

>最後,我在CSS蒙版屬性中引用了SVG 元素的ID值。 這將蒙版效果應用於頁面上的圖像。

>僅通過為頁面背景和蒙版圖像添加其他一些樣式聲明,您就可以實現出非常戲劇性的效果,如下面的效果:

用CSS和SVG在瀏覽器中掩蓋

請注意,圓面膜的部分如何填充梯度的白色陰影,使蒙版的圖像通過。相反,該部分充滿了梯度的黑色色調,隱藏了掩蓋的圖像。

這是在codepen上進行的實時演示(請記住,它只能在firefox上使用!)

>請參閱codepen上的sitepoint(@sitepoint)的inline svg掩碼元素的筆蒙版。

在SVG圖形上使用SVG 元素

>您可以在上一個示例中使用相同的SVG 元素,但是這次掩蓋了SVG圖形而不是HTML元素。優點是瀏覽器支持更好,包括WebKit瀏覽器和最新的IE。

>在下面的摘要中,我將要將圖像放置在SVG元素中,然後將CSS蒙版屬性應用於它。 CSS蒙版屬性引用了帶有 bask1 元素,就像上一個示例一樣。這是蒙版SVG圖形的代碼:

這是負責CSS中掩蓋操作的片段:

結果與上一個示例幾乎相似,只有這次您才能在所有主要瀏覽器上查看它。
.masked-element {
  mask-image: url(#mask1);
}

看Codepen演示:

.masked-element {
  mask-image: linear-gradient(black 0%, transparent 100%);
}
>請參閱sitepoint(@sitepoint)上的SVG元素上的Pen SVG蒙版。 用SVG文本

掩蓋

>您可以使用SVG蒙版內的文本元素執行掩蔽操作:

上面的摘要在SVG蒙版內添加了一個黑色SVG文本元素,並使用CSS蒙版屬性將其應用於淺藍色的SVG橢圓形。 橢圓形形狀後面的任何內容(在這種情況下,它是身體的背景圖像)將通過文本顯示。結果看起來像這樣:

完整的代碼可在Codepen上使用:

>請參閱codepen上的sitepoint(@sitepoint)的筆svg文本蒙版。

>動畫蒙版

>您可以使用CSS Transition和KeyFrame Animation動畫掩碼位置和掩模大小。

下面是星形PNG掩碼圖像的基本關鍵幀動畫示例。

這是相關的代碼段:>

蒙版元素是html 用CSS和SVG在瀏覽器中掩蓋 tag:

>遮罩操作使用速記蒙版屬性:
/* 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在瀏覽器中掩蓋元素上的.Animate類,使用CSS變換和動畫為星形圖像添加了運動:

.masked-element {
  mask-image: url(#mask1);
}

>啟動像Chrome這樣的WebKit瀏覽器,並在Codepen上查看以下實時演示:
.masked-element {
  mask-image: linear-gradient(black 0%, transparent 100%);
}
用CSS和SVG在瀏覽器中掩蓋請參閱Codepen上的Maria Antonietta Perna(@antonietta)的CSS面具動畫的筆

>用CSS

對SVG掩碼元素進行動畫動畫

>您可以使用SVG 元素在用CSS和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演示就瀏覽器的支持而言提供了最先進的視覺插圖。

alan greenblatt提供了一個GitHub存儲庫,他可以在其中支持與CSS圖形相關的屬性的詳細信息。

>我可以使用網站上的瀏覽器支持兼容性表提供了更多詳細信息和鏈接到更多資源。

>儘管當前對CSS蒙版的瀏覽器支持並不是很好,但是如果您將此功能用作一些裝飾元素的增強功能,但不支持瀏覽器的用戶甚至不會注意到它們會錯過。

>

>最後,使用SVG 元素在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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
揭開屏幕讀取器的神秘面紗:可訪問的表格和最佳實踐揭開屏幕讀取器的神秘面紗:可訪問的表格和最佳實踐Mar 08, 2025 am 09:45 AM

這是我們在形式可訪問性上進行的小型系列中的第三篇文章。如果您錯過了第二篇文章,請查看“以:focus-visible的管理用戶焦點”。在

將框陰影添加到WordPress塊和元素將框陰影添加到WordPress塊和元素Mar 09, 2025 pm 12:53 PM

CSS盒子陰影和輪廓屬性獲得了主題。讓我們查看一些在真實主題中起作用的示例,以及我們必須將這些樣式應用於WordPress塊和元素的選項。

使用智能表單框架創建JavaScript聯繫表格使用智能表單框架創建JavaScript聯繫表格Mar 07, 2025 am 11:33 AM

本教程演示了使用智能表單框架創建外觀專業的JavaScript表單(注意:不再可用)。 儘管框架本身不可用,但原理和技術仍然與其他形式的建築商相關。

比較5個最佳的PHP形式構建器(和3個免費腳本)比較5個最佳的PHP形式構建器(和3個免費腳本)Mar 04, 2025 am 10:22 AM

本文探討了Envato Market上可用的PHP表單構建器腳本,比較了其功能,靈活性和設計。 在研究特定選項之前,讓我們了解PHP形式構建器是什麼以及為什麼要使用一個。 PHP形式

使用GraphQL緩存使用GraphQL緩存Mar 19, 2025 am 09:36 AM

如果您最近開始使用GraphQL或審查了其優點和缺點,那麼您毫無疑問聽到了諸如“ GraphQl不支持緩存”或

使您的第一個自定義苗條過渡使您的第一個自定義苗條過渡Mar 15, 2025 am 11:08 AM

Svelte Transition API提供了一種使組件輸入或離開文檔(包括自定義Svelte Transitions)時動畫組件的方法。

展示,不要說展示,不要說Mar 16, 2025 am 11:49 AM

您花多少時間為網站設計內容演示文稿?當您撰寫新的博客文章或創建新頁面時,您是在考慮

優雅且酷的自定義CSS捲軸:展示櫃優雅且酷的自定義CSS捲軸:展示櫃Mar 10, 2025 am 11:37 AM

在本文中,我們將深入研究滾動條。我知道,這聽起來並不魅力,但請相信我,一個精心設計的頁面是齊頭並進的

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版