遮罩效果 css3

CSS3提供了遮罩效果,這是以前CSS2中比較難實現的一個新特性,配合SVG或者canvas同樣也可以實現遮罩效果,他的效果就如下圖所示:

簡單的說就是在一個層上面加一個過濾層,過濾層透明度越低,底層就顯示的越多,反之,底層顯示越少

1. CSS3屬性

CSS3中提供的新屬性有(括號為跟background對應類似的屬性):

-webkit-mask-image:設置遮罩圖片地址

-webkit-mask-position: 定義遮罩層的出現位置,可以取值px或百分比,也可以指定為 top left right 和bottom

像素(px)

?(1)如果只指定一個值(例如-webkit-mask-position:10px),第二個值就會被默認為'center'效果如-webkit-mask-position:10px center

?(2)如果指定兩個值(-webkit-mask-position:10px 10px),第一個值就是橫坐標的偏移或定位,第二個值就是縱坐標的偏移或定位,px指定遮罩圖片的左上角對應于影響區域的左上角,所謂影響區域就是被遮罩圖片遮罩的區域,也就是遮罩圖片的大小

?(3)如果指定三個值,那么每個px之前必須指定一個方向(top,left,bottom,right),例如:mask-position: bottom 10px right 20px 指定了距離底部10px,距離右邊20px,如果指定了3個方向,默認值為0

例如:

 mask-position: left 10px top 15px;   /* 10px, 15px */mask-position: left      top     ;   /*  0px,  0px */mask-position:      10px     15px;   /* 10px, 15px */mask-position: left          15px;   /*  0px, 15px */mask-position:      10px top     ;   /* 10px,  0px */mask-position: left      top 15px;   /*  0px, 15px */mask-position: left 10px top     ;   /* 10px,  0px */

?

?百分比(%)

? 百分比設置了遮罩圖片橫坐標和縱坐標的偏移百分比,注意偏移包括對遮罩原圖片大小的偏移,也包括遮罩圖片本身的偏移,例如-webkit-mask-position:75% 50%的偏移如圖:

?指定值:

top: 如果指定1或2個值則代表縱坐標0%,否則是指定距離上邊的偏移量
right: 如果指定1或2個值則代表橫坐標100%,否則是指定距離右邊的偏移量
bottom: 如果指定1或2個值則代表縱坐標100%,否則是指定距離下邊的偏移量
left: 如果指定1或2個值則代表橫坐標0%,否則是指定距離左邊的偏移量
center:代表50%?

body { mask: url("banner.jpeg") right top }    /* 100%   0% */
body { mask: url("banner.jpeg") top center }   /*  50%   0% */
body { mask: url("banner.jpeg") center }       /*  50%  50% */
body { mask: url("banner.jpeg") bottom }       /*  50% 100% */

-webkit-mask-position-x:?[ percentage | length | left | center | right ]?定義遮罩層的出現位置的橫坐標
-webkit-mask-position-y:?[ percentage | length | top | center | bottom ]?定義遮罩層的出現位置的縱坐標

-webkit-mask-clip:?border | padding | content | text?定義圖片遮罩延伸到的位置

?

border圖片遮罩延伸到元素border
padding圖片遮罩延伸到元素padding
content圖片遮罩延伸到元素內容部分
text圖片遮罩延伸到元素文字部分

?

-webkit-mask-composite?定義同一個元素上有多個圖片遮罩時的相對順序

?

clear源圖片和目標圖片重疊的像素被清除
copy源圖片替代目標圖片
source-over源圖片呈現在目標圖片上
source-in源圖片和目標圖片重疊的像素被源圖片替代,其他像素被清除
source-out源圖片和目標圖片重疊的像素被清除,源圖片剩下的像素被呈現
source-atop目標圖片被呈現。只有在重疊像素在目標圖片的不透明部分時,源圖片被呈現。這導致源圖片不起作用
destination-over目標圖片呈現在源圖片上
destination-in源圖片和目標圖片的重疊像素中,屬于源圖片的保留,其他像素被清除
destination-out圖片和目標圖片的重疊像素被清除,源圖片剩余的像素被展示
destination-atop源圖片的像素被展示。只有在重疊部分在目標圖片的不透明時。目標圖片被呈現。這導致目標圖片不起作用
xor如果源圖片與目標圖片都透明時,重疊像素全變為透明

?例如:  

         #demo{width:930px;height:768px;margin: 50px auto;font-size: 20px;font-weight: bold;color:red;background:url(back.jpg) no-repeat;-webkit-mask-image:url(mask1.png),url(mask2.png);-webkit-mask-repeat:no-repeat;    }

mask.png為源圖片,mask2為目標圖片

?

-webkit-mask-box-image?定義圖片遮罩的滾動特性.

?

uri圖片路徑
gradient用-webkit-gradient函數生成遮罩圖(mask image)
none沒有遮罩圖片
top圖片離上邊緣的距離
right圖片離右邊緣的距離
bottom圖片離底邊緣的距離
left圖片離左邊緣的距離
x_repeat水平方向的重復,取值:repeat | stretch | round
y_repeat垂直方向的重復,取值:repeat | stretch | round

?

-webkit-mask-origin?定義-webkit-mask-position值得起始位置.

?

padding默認值,從padding開始計算-webkit-mask-position的值
border從border開始計算-webkit-mask-position的值
content從元素內容部分開始計算-webkit-mask-position的值

?

-webkit-mask-repeat?定義遮罩層的出現位置

?

repeat遮罩圖片水平、垂直方向都重復
repeat-x遮罩圖片只在水平方向重復
repeat-y遮罩圖片只在垂直方向重復
space遮蓋圖像重復的次數使其可容納在背景放置區域中,同時不經過裁剪,圖像將拉開間隔以填滿區域。
round遮蓋圖像經過縮放,以便可放下整數個該圖像
no-repeat遮罩圖片不重復

?

-webkit-mask-size?定義遮罩層的大小

?

auto繼承遮罩圖的寬度和高度
contain放大圖像到最大的尺寸,同時保持原有的圖像縱橫比,使得寬高完全地適應背景位置區域
cover縮放圖像到最小的尺寸,同時保持原有的圖像縱橫比,使得寬高完全地覆蓋背景位置區域
length浮點數,后跟絕對單位符(cm, mm, in, pt, pc)或者相對單位符 (em, ex, or px)
percentage整數,后跟百分號,百分比的值和背景位置區域有關系。


-webkit-mask-attachment: fixed | scroll 圖片滾動方式 fixed 不滾的 scroll滾動

?

2. 配合animation:css3的animation可以實習樣式的動態變化,通過設置animation可以實現探照燈效果:

?

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>探照燈例子</title>
<style>
body {font-size: 13px;background-color: #000;
}
.demo {-webkit-animation: demo-an2 5s ease-out infinite;border-radius: .4em;color: #FFFF;margin: 1em;    font-size:4em;font-weight:bold;text-align: center;text-shadow: 1px 1px 0 #ccc;    -webkit-mask: -webkit-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 10%, rgba(0,0,0,0) 20%) -500px 0 no-repeat content;width: 16em;
}
@-webkit-keyframes demo-an {
to {
-webkit-mask-position:600px 0;
}
}
</style>
</head>
<body>
<div class="demo">騰訊財付通,會支付會生活</div>
</body></html>

??

轉載于:https://www.cnblogs.com/zhusheng2008/p/4102691.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376467.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376467.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376467.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

調試九法(第1次閱讀)

閱讀時間&#xff1a; 2017年4月19日 --- 2017年4月22日 第一次看到這本書的時候&#xff0c;是在網上看到它被評論得十分優秀&#xff0c;只要掌握了書中的方法&#xff0c;就能找到所有的BUG。我就是這樣被吸引過來的。 因為是調試9法&#xff0c;所以總共講了調試的時候注意…

Oracle11g密碼區分大小寫導致database link無法連接

Oracle11g的密碼默認是區分大小寫的&#xff0c;該特性通過初始化參數sec_case_sensitive_logon控制&#xff0c;默認TRUE表示區分大小寫。但是Oracle11g之前的版本密碼都是不區分大小寫的&#xff0c;所以在Oracle10g等以前版本創建到Oracle11g的database link時&#xff0c;可…

OC-深淺復制

【OC學習-26】對象的淺拷貝和深拷貝——關鍵在于屬性是否可被拷貝 對象的拷貝分為淺拷貝和深拷貝&#xff0c;淺拷貝就是只拷貝對象&#xff0c;但是屬性不拷貝&#xff0c;拷貝出來的對象和原來的對象共用屬性&#xff0c;即指向同一個屬性地址。深拷貝則相當于不僅拷貝了一個…

計算機科學導論(第一次閱讀)

時間&#xff1a; 2017年4月22日----2017年4月26 這是一本計算機入門書籍&#xff0c;粗略地描述了計算機各個方面的內容。當然對于一些十分復雜的知識&#xff0c;也僅僅是大概描述了這方面知識的一些了解知識。

配置SQLServer,允許遠程連接

需要別人遠程你的數據庫&#xff0c;首先需要的是在一個局域網內&#xff0c;或者連接的是同一個路由器&#xff0c;接下來就是具體步驟&#xff1a; &#xff08;一&#xff09;首先是要檢查SQLServer數據庫服務器中是否允許遠程鏈接。其具體操作為&#xff1a; &#xff08;1…

彈出打開/保存文件對話框 選擇文件夾對話框

打開/保存文件對話框: CFileDialog::CFileDialog(BOOL bOpenFileDialog, //為TRUE則顯示打開對話框&#xff0c;為FALSE則顯示保存對話文件對話框LPCTSTR lpszDefExt NULL, //默認的文件擴展名LPCTSTR lpszFileName NULL, //默認的文件名DWORD dwFlags OFN_HIDEREADONLY | O…

SharePoint 2013的100個新功能之網站管理(一)

一&#xff1a;設置盤 網站操作現在被替換為新的&#xff08;設置&#xff09;盤子。一些新的操作像添加一個應用、添加一個頁面或設計管理器被添加而像創建網站則從菜單中移除了。 二&#xff1a;移除以其他用戶身份登錄 在SharePoint 2013中&#xff0c;從用戶歡迎菜單中移除…

160 - 13 badboy

偷懶了很久也是時候要繼續開始學習了。 環境&#xff1a; windows xp sp3 工具&#xff1a; VB Decompiler v8.3 這次是個vb文件&#xff0c;所以嘗試一下用這個的感覺。 打開文件之后發現有兩個CrackMe選擇&#xff0c;分別是1.0版本和2.0版本。 打開vb decompiler&#…

VBS操作剪切板

VBS操作剪切板 設置剪切板的內容 Dim Form, TextBox Set Form CreateObject("Forms.Form.1") Set TextBox Form.Controls.Add("Forms.TextBox.1").Object TextBox.MultiLine True TextBox.Text "忘記了&#xff0c;喜歡一個人的感覺" TextBo…

MVN生成java項目

mvn archetype:create -DgroupIdcom.mycompany.app -DartifactIdmyWeb -DarchetypeArtifactIdmaven-archetype-webapp 轉載于:https://www.cnblogs.com/alaricblog/p/3278239.html

160 - 14 bjanes.1

環境&#xff1a; window xp sp3 工具&#xff1a; ollydbg &#xff0c;exeinfo pe 拿到程序后&#xff0c;查殼。顯示是無殼的VB程序 用之前用的VB decompiler載入&#xff0c;沒找到有用的東西&#xff0c;還是用回了OD。 OD載入&#xff0c;運行起來。輸入“GNUBD”然后點…

小結C++中一些自帶的好用東西

STL部分 <set>/<multiset> 支持插入一個元素&#xff0c;刪除指定key值的元素&#xff0c;查找指定key值的元素&#xff0c;返回最大/小值&#xff0c;找前驅&#xff0c;找后繼&#xff0c;返回指定key值的相同元素個數。 部分代替平衡樹中一些操作。不能updata或…

160 - 15 blaster99.exe

環境&#xff1a; windows xp sp 3 工具&#xff1a; Ollydbg 和 exeinfo pe 查殼&#xff0c;還是無殼的vb程序。 打開&#xff0c;有一個nag窗口&#xff0c;點擊”確認”的話才會彈出輸入serial的窗口&#xff0c;點“取消”的話會關閉程序 OD載入&#xff0c;運行到彈出n…

Freemarker宏和函數的用法和區別

1.宏&#xff08;macro&#xff09;寫法&#xff1a;<#macro page url page maskSize5> <#if (number pages)><li><a href"javascript:void(0);">下一頁</a></li><li><a href"javascript:void(0);">尾…

聚類算法初探(八)數據尺度化問題

文中尺度化的一些具體公式可參見 http://blog.csdn.net/itplus/article/details/10088101 其他相關鏈接 引言 預備知識 直接聚類法 K-means DBSCAN OPTICS 聚類分析的效果評測 作者: peghoty 出處: http://blog.csdn.net/itplus/article/details/10484553 歡迎轉載/分享, 但請…

160 - 16 bjanes.2

環境&#xff1a; windows xp sp3 工具&#xff1a; bjanes.2&#xff0c;HashCalc 這個和14題是一樣的&#xff0c;看名字就發現都是2.0A&#xff0c;然后用HashCalc來計算一下MD5&#xff0c;發現它們的值是相同的。 如果沒猜錯&#xff0c;應該就是在14題是被放錯題了。

HDU 1269

很水的TARJAN求強聯通圖的問題。 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm>using namespace std; const int N10010; const int M100010; int head[N],dfn[N],low[N],stack[N],st; struct Edge{int u,v;int nxt…

maven庫文件所在目錄

C:\Documents and Settings\jgzhang2\.m2\repository轉載于:https://www.cnblogs.com/yipihema/p/3289140.html

imul和mul的計算

imul是把操作數符號也算上的&#xff1a; 設 AL 0B4H BL 11H 執行 imul BL 后&#xff1a;AL 0FAF4 原因&#xff1a; imul是把符號也算上的&#xff0c;所以AL是某個數的補碼&#xff0c;故得AL -4C -76D&#xff0c;而BL 17D 是正數&#xff0c;相乘得-1292&#x…

【待完善】make: command not found,以及libtool.m4 and ltmain.sh have a version mismatch問題的解決方案...

之前為了使用一個庫&#xff0c;都是去下載源碼&#xff0c;然后根據開發者提供的README手動用GCC編譯&#xff0c;一直不能使用Makefile感覺很蛋痛&#xff0c;比如最近使用的ZThread 還是怪自己以前過于依賴IDE 最近發現用Cygwin就可以使用諸如./configure, make這樣的命令&a…