Vlastnost mask-mode
CSS označuje, zda se s obrazem vrstvy masky CSS zachází jako s alfa maskou nebo s maskou jasu.
.element ( mask-image: url(sun.svg); mask-mode: alpha; )
Syntax
mask-mode: alpha | luminance | match-source
Vlastnost přijímá jedno klíčové slovo hodnotu, nebo čárkami oddělený seznam dvou nebo všechny tři alpha
, luminance
a mask-source
hodnoty.
- Počáteční hodnota:
match-source
- Platí pro: všechny prvky. V SVG platí pro prvky kontejneru s výjimkou prvku, všechny grafické prvky.
- Zděděno: ne
- Vypočítaná hodnota: jak je uvedeno
- Typ animace: diskrétní
Hodnoty
/* Keyword values */ mask-mode: alpha; mask-mode: luminance; mask-mode: match-source; /* Global values */ mask-mode: inherit; mask-mode: initial; mask-mode: unset;
alpha
: určuje, že jako hodnoty masky by měly být použity hodnoty alfa (alfa kanál) obrazu vrstvy masky.luminance
: určuje, že hodnoty jasu obrazu masky by měly být použity jako hodnoty masky.match-source
: výchozí hodnota, která nastavuje režim masky na alfa, pokud je odkazem na maskumask-image
vlastnostiprvek CSS, jako je adresa URL obrázku nebo přechod. Pokud je však odkazem na masku
mask-image
vlastnostiprvek SVG ,
musí být použita hodnota určená vlastností typu masky odkazovaného prvku.
initial
: použije výchozí nastavení vlastnosti, což jematch-source
.inherit
: převezme hodnotu režimu masky nadřazeného objektu.unset
: odstraní aktuální režim masky z prvku.
Použití více hodnot
Tato vlastnost může převzít seznam hodnot oddělených čárkami pro režimy masky a každá hodnota se použije na odpovídající obrázek vrstvy masky určený ve vlastnosti mask-image.
V následujícím příkladu první hodnota určuje režim masky odpovídající prvnímu obrázku, druhá hodnota pro druhý obrázek atd.
.element ( mask-image: url(image1.png.webp), url(image2.png.webp), url(image3.png.webp); mask-mode: luminance, alpha, match-source; )
Alfa a jasové masky
Maskování v CSS přichází se dvěma metodami, které mají určité rozdíly ve výpočtu hodnot masky.
Alfa masky
Obrázky jsou tvořeny pixely, každý pixel má některá data obsahující hodnoty barev a možná hodnoty alfa s informacemi o průhlednosti. Obrázek s alfa kanálem může být alfa maska , například obrázky PNG s černými a průhlednými oblastmi.
V jednoduché maskovací operaci máme prvek a obrázek masky umístěný nad ním. Hodnota alfa každého pixelu v obrázku masky bude sloučena s odpovídajícím pixelem v prvku.
- Pokud je hodnota alfa nula (tj. Průhledná), vyhraje se a tato část prvku je maskovaná (tj. Skrytá).
- Alfa hodnota jedné (tj. Zcela neprůhledná) umožňuje, aby byl viditelný tento pixel prvku.
- Hodnota mezi 0 a 1 (např. 0,5) umožňuje, aby byl pixel viditelný, ale s určitou úrovní průhlednosti.
V této metodě je tedy hodnota masky v daném bodě jednoduše hodnotou alfa kanálu v tomto bodě obrazu masky a barevné kanály nepřispívají k hodnotě masky.
Níže uvedený příklad je alfa maska, která obsahuje pouze černé (alfa hodnota 1) a průhledné oblasti (alfa hodnota 0) a můžete vidět výsledek, který má některé části plně viditelné a jiné plně průhledné:
Ale v následujícím příkladu používáme přechod, který má jinou úroveň průhlednosti. Výsledek je nejen viditelný nebo průhledný, ale existují i některé průsvitné oblasti:
img ( mask-image: linear-gradient(black, transparent); mask-mode: alpha; )
Výsledek vypadá v prohlížeči takto:
Jasové masky
V masce jasu záleží na barvách a hodnotách alfa. Když je alfa hodnota 0 (tj. Plně transparentní), prvek je skrytý; pokud je alfa hodnota 1, hodnoty masky se liší v závislosti na barevném kanálu daného pixelu. Když je například bílá barva, prvek je viditelný; v případě černé oblasti je prvek skrytý.
Zatímco výpočet hodnot masky v alfa masce je založen pouze na hodnotách alfa obrazu masky, hodnoty masky jasové masky se počítají z hodnot jasu a alfa. Prohlížeče to provedou v následujících krocích:
- Vypočítejte hodnotu jasu z hodnot barevného kanálu.
- Vynásobte vypočítanou hodnotu jasu odpovídající hodnotou alfa, abyste vytvořili hodnotu masky.
/ vysvětlení Další informace o těchto výpočtech najdete v sekci zpracování masky ve specifikaci CSS Masking Module 1 z konceptu editoru ze září 2019.
Měch je obrázek masky s bílým sluncem uprostřed a průhlednými oblastmi kolem něj. Jak vidíte, oblasti while jsou plně viditelné:
A v dalším příkladu se jako obrázek masky použije barevný přechod a v režimu luminance můžete vidět vliv různých barev na hodnoty masky:
Ukázka
V následující ukázce používáme obrázek masky s průhlednými a černými oblastmi:
Další ukázka představuje jasovou masku s přechodem jako obrázek masky:
Poznámka
mask-mode
Vlastnost potlačí definice mask-type
majetku.
Podpora prohlížeče
TJ | Okraj | Firefox | Chrome | Safari | Opera |
---|---|---|---|---|---|
Všechno | Všechno | 53+ | Všechno | Všechno | Všechno |
Android Chrome | Android Firefox | Prohlížeč Android | iOS Safari | Opera Mobile |
---|---|---|---|---|
Všechno | 83+ | Všechno | Všechno | Všechno |