前面的話
CSS遮罩是2008年4月由蘋果公司添加到webkit引擎中的。遮罩提供一種基於像素級別的,可以控制元素透明度的能力,類似於png24位或png32位中的alpha透明通道的效果。本文將詳細介紹CSS遮罩mask
概述
遮罩mask的功能就是使用透明的圖片或漸變遮罩元素的背景。於是,遮罩mask與背景background非常類似,除了沒有color子屬性,背景background剩下的6個子屬性,mask都有
遮罩mask是一個復合屬性,包括mask-image、mask-mode、mask-repeat、mask-position、mask-clip、mask-origin、mask-size、mask-composite這8個屬性
[注意]IE瀏覽器不支持,webkit內核的瀏覽器(包括chrome、safari、IOS、android)需要添加-webkit-前綴。要特別注意的是,firefox瀏覽器也支持webkit-mask屬性
【mask-image】
默認值為none,值為透明圖片,或透明漸變
【mask-repeat】
默認值為repeat,可選值與background-repeat相同,詳細情況移步至此
【mask-position】
默認值為0 0,可選值與background-position相同,詳細情況移步至此
【mask-clip】
默認值為border-box,可選值與background-clip相同,詳細情況移步至此
【mask-origin】
默認值為border-box,可選值與background-origin相同,詳細情況移步至此
【mask-size】
默認值為auto,可選值與background-size相同,詳細情況移步至此
【mask-mode】
默認值為match-source,可選值為alpha、luminance、match-source,或者它們的組合
【mask-composite】
默認值為add,可選值為add、subtract、intersect、exclude
[注意]只有firefox支持mask-mode和mask-composite
實例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .wrap{ position:absolute; width: 400px; border:1px solid black; } #mask{ height: 300px; background:url(http://sandbox.runjs.cn/uploads/rs/142/wat3wtnz/dongzhi.jpg) lightblue; -webkit-mask: url(http://sandbox.runjs.cn/uploads/rs/142/wat3wtnz/mask.png) no-repeat; animation: 2s maskPosition infinite alternate ; } #mask:hover{ animation: none; } @keyframes maskPosition{ 0%{-webkit-mask-position:0 0;} 100%{-webkit-mask-position:100% 100%;} } </style> </head> <body> <div class="wrap"> <div id="mask"></div> </div> <script> var oBox = document.getElementById('mask'); oBox.onmousemove = function(e){ e = e || event; oBox.style.WebkitMaskPosition=(e.clientX-50)+"px "+ (e.clientY-50)+"px"; } </script> </body> </html>