CSS 掩膜 - mask

你好,未來的 CSS 大師們!今天,我們將要深入 CSS 掩膜的迷人世界。想像你是一名魔術師,想要讓你的網頁部分內容消失或以有趣的方式呈現。這正是 CSS 掩膜能夠讓我們做到的!所以,讓我們戴上魔術師的帽子,學習一些 CSS 技巧吧!

CSS - Masking

CSS 掩膜是什麼?

CSS 掩膜就像在你的網頁元素上使用一個無形的模板。它允許你基於另一個圖像或形狀來隱藏或部分顯示元素的某些部分。這是一種強大的技術,可以創造出一些非常酷的效果!

可能的值

在我們開始編碼之前,讓我們看看我們可以在 mask 屬性中使用哪些不同的值。將這些想像成不同類型的魔法棒,每個都會創造出一個獨特的效果:

描述
none 沒有應用掩膜
<mask-reference> 指向一個掩膜圖像
<masking-mode> 調整掩膜的應用方式
<position> 設置掩膜的位置
<bg-size> 定義掩膜的大小
<repeat-style> 指定掩膜的重複方式
<geometry-box> 定義掩膜框
no-clip 防止剪裁掩膜

如果現在這些看起來令人困惑,別擔心。我們將通過範例一一探討!

应用範圍

mask 屬性可以應用於任何元素。就像有一根對所有東西都有效的魔法棒!

語法

mask 屬性的基本語法如下:

.element {
mask: <value>;
}

現在,讓我們詳細看看每個值。

CSS mask - none 值

none 值非常直接。它意味著沒有應用掩膜。就像決定完全不使用你的魔法棒。

.no-mask {
mask: none;
}

這段代碼簡單地告訴瀏覽器,“不要對這個元素應用任何掩膜。”

CSS mask - <mask-reference>

這裡才是真正的魔法開始!<mask-reference> 可以是一張圖像或 CSS 渐變,它定義了元素的哪些部分應該是可見的。

.image-mask {
mask-image: url('mask.png');
mask: url('mask.png');
}

.gradient-mask {
mask-image: linear-gradient(to right, transparent, black);
mask: linear-gradient(to right, transparent, black);
}

在這些範例中,我們使用圖像文件 ('mask.png') 或線性渐變作為我們的掩膜。掩膜中的黑色部分會顯示元素,而透明部分會隱藏它。

CSS mask - <masking-mode>

掩膜模式決定了掩膜是如何應用的。有兩個值:alphaluminance

.alpha-mask {
mask-mode: alpha;
}

.luminance-mask {
mask-mode: luminance;
}
  • alpha:使用掩膜圖像的 alpha 通道。
  • luminance:使用掩膜圖像的亮度。

CSS mask - <position>

就像背景圖像一樣,你可以定位你的掩膜:

.positioned-mask {
mask-position: center;
/* 或 */
mask: url('mask.png') center;
}

這會將掩膜置於元素的中心。你可以在此使用任何有效的 CSS 位置值。

CSS mask - <bg-size>

你也可以控制你的掩膜大小:

.sized-mask {
mask-size: cover;
/* 或 */
mask: url('mask.png') cover;
}

這會使掩膜覆蓋整個元素。你也可以使用特定的尺寸,如 100px 200px

CSS mask - <repeat-style>

如果你的掩膜比元素小,你可以控制它的重複方式:

.repeating-mask {
mask-repeat: repeat-x;
/* 或 */
mask: url('mask.png') repeat-x;
}

這會水平重複掩膜跨過元素。

CSS mask - <geometry-box>

幾何框定義了掩膜覆蓋的區域:

.box-mask {
mask-clip: padding-box;
/* 或 */
mask: url('mask.png') padding-box;
}

這會將掩膜應用於元素的填充框。

CSS mask - <geometry-box> | no-clip

no-clip 值防止掩膜被剪裁到元素的邊界:

.no-clip-mask {
mask-clip: no-clip;
/* 或 */
mask: url('mask.png') no-clip;
}

這允許掩膜超出元素的邊界。

CSS mask - 相關屬性

有幾個與 mask 相關的屬性,讓你擁有更多的控制權:

屬性 描述
mask-image 指定掩膜圖像
mask-mode 設置掩膜模式
mask-repeat 控制掩膜的重複
mask-position 設置掩膜的位置
mask-clip 調整掩膜的繪製區域
mask-origin 設置掩膜的起點
mask-size 指定掩膜的大小
mask-composite 定義掩膜的組合

這些屬性與我們一直在使用的簡寫 mask 屬性的每一部分對應。

而這就是 CSS 掩膜的基礎知識,我的年輕的 CSS 魔術師們!你剛剛學會了 CSS 掩膜的基礎。記住,就像任何魔術一樣,精通 CSS 掩膜需要練習。所以不要害怕嘗試並創造你自己的神奇網頁設計!

在我多年的教學經驗中,我發現最好的學習方式是通過實踐。所以這裡有一個有趣的練習:嘗試使用漸變掩膜創造一個“顯示”效果。當你將鼠標悬停在圖像上時,它會完全顯示出來。這就像拉開一幅簾幕來展示一張藏起的圖片!

快樂編碼,願你的掩膜永遠完美適合!

Credits: Image by storyset