老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

CSS中的mask屬性怎么使用

本篇內容主要講解“CSS中的mask屬性怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“CSS中的mask屬性怎么使用”吧!

創新互聯公司是一家集網站建設,無為企業網站建設,無為品牌網站建設,網站定制,無為網站建設報價,網絡營銷,網絡優化,無為網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。

語法


最基本,使用 mask 的方式是借助圖片,類似這樣:

{
    /* Image values */
    mask: url(mask.png);                       /* 使用位圖來做遮罩 */
    mask: url(masks.svg#star);                 /* 使用 SVG 圖形中的形狀來做遮罩 */
}

當然,使用圖片的方式后文會再講。借助圖片的方式其實比較繁瑣,因為我們首先還得準備相應的圖片素材,除了圖片,mask 還可以接受一個類似 background 的參數,也就是漸變。

類似如下使用方法:

{
    mask: linear-gradient(#000, transparent)   /* 使用漸變來做遮罩 */
}

那該具體怎么使用呢?一個非常簡單的例子,上述我們創造了一個從黑色到透明漸變色,我們將它運用到實際中,代碼類似這樣:

下面這樣一張圖片,疊加上一個從透明到黑色的漸變,

{
    background: url(image.png) ;
    mask: linear-gradient(90deg, transparent, #fff);
}

CSS中的mask屬性怎么使用

應用了 mask 之后,就會變成這樣:

CSS中的mask屬性怎么使用

這個 DEMO,可以先簡單了解到 mask 的基本用法。

這里得到了使用 mask 最重要結論:圖片與 mask 生成的漸變的 transparent 的重疊部分,將會變得透明。

值得注意的是,上面的漸變使用的是 linear-gradient(90deg, transparent, #fff),這里的 #fff 純色部分其實換成任意顏色都可以,不影響效果。

CodePen Demo -- 使用 MASK 的基本使用

使用 MASK 進行圖片裁切


利用上述簡單的運用,我們可以使用 mask 實現簡單的圖片裁剪。

使用 mask 實現圖片切角遮罩

使用線性漸變,我們實現一個簡單的切角圖形:

.notching{
    width: 200px;
    height: 120px;
    background:
    linear-gradient(135deg, transparent 15px, deeppink 0)
    top left,
    linear-gradient(-135deg, transparent 15px, deeppink 0)
    top right,
    linear-gradient(-45deg, transparent 15px, deeppink 0)
    bottom right,
    linear-gradient(45deg, transparent 15px, deeppink 0)
    bottom left;
    background-size: 50% 50%;
    background-repeat: no-repeat;
}

像是這樣:

CSS中的mask屬性怎么使用

我們將上述漸變運用到 mask 之上,而 background 替換成一張圖片,就可以得到運用了切角效果的圖片:

background: url(image.png);
mask:
    linear-gradient(135deg, transparent 15px, #fff 0)
    top left,
    linear-gradient(-135deg, transparent 15px, #fff 0)
    top right,
    linear-gradient(-45deg, transparent 15px, #fff 0)
    bottom right,
    linear-gradient(45deg, transparent 15px, #fff 0)
    bottom left;
mask-size: 50% 50%;
mask-repeat: no-repeat;

得到的效果如下:

CSS中的mask屬性怎么使用

CodePen Demo -- 使用 MASK 實現圖片切角遮罩

當然,實現上述效果還有其他很多種方式,譬如 clip-path,這里的 mask 也是一種方式。

多張圖片下使用 mask


上述是單張圖片使用 mask 的效果。下面我們看看多張圖片下,使用 mask 能碰撞出什么樣的火花。

假設我們有兩張圖片,使用 mask,可以很好將他們疊加在一起進行展示。最常見的一個用法:

div {
    position: relative;
    background: url(image1.jpg);
 
    &::before {
        position: absolute;
        content: "";
        top: 0;left: 0; right: 0;bottom: 0;
        background: url(image2.jpg);
        mask: linear-gradient(45deg, #000 50%, transparent 50%);
    }
}

兩張圖片,一張完全重疊在另外一張之上,然后使用 mask: linear-gradient(45deg, #000 50%, transparent 50%) 分割兩張圖片:

CSS中的mask屬性怎么使用

CodePen Demo -- MASK 的基本使用,多張圖片下的基本用法

當然,注意上面我們使用的 mask 的漸變,是完全的實色變化,沒有過度效果。

我們稍微修改一下 mask 內的漸變:

{
- mask: linear-gradient(45deg, #000 50%, transparent 50%)
+ mask: linear-gradient(45deg, #000 40%, transparent 60%)
}

即可得到圖片1向圖片2過渡切換的效果:

CSS中的mask屬性怎么使用

CodePen Demo -- MASK 的基本使用,多張圖片下的基本用法2

使用 MASK 進行轉場動畫


有了上面的鋪墊。運用上面的介紹的一些方法,我們就可以使用 mask 來進行一些圖片切換間的轉場動畫。

使用線性漸變 mask:linear-gradient() 進行切換

還是上面的 Demo,我們通過動態的去改變 mask 的值來實現圖片的顯示/轉場效果。

代碼可能是這樣:

div {
    background: url(image1.jpg);
    animation: maskMove 2s linear;
}
@keyframes {
  0% {
    mask: linear-gradient(45deg, #000 0%, transparent 5%, transparent 5%);
  }
  1% {
    mask: linear-gradient(45deg, #000 1%, transparent 6%, transparent 6%);
  }
  ...
  100% {
    mask: linear-gradient(45deg, #000 100%, transparent 105%, transparent 105%);
  }
}

當然,像上面那樣一個一個寫,會比較費力,通常我們會借助 SASS/LESS 等預處理器進行操作。像是這樣:

div {
    position: relative;
    background: url(image2.jpg) no-repeat;
 
    &::before {
        position: absolute;
        content: "";
        top: 0;left: 0; right: 0;bottom: 0;
        background: url(image1.jpg);
        animation: maskRotate 1.2s ease-in-out;
    }
}
 
@keyframes maskRotate {
    @for $i from 0 through 100 {
        #{$i}% {
            mask: linear-gradient(45deg, #000 #{$i + '%'}, transparent #{$i + 5 + '%'}, transparent 1%);
        }
    }
}

可以得到下面這樣的效果(單張圖片的顯隱及兩張圖片下的切換):

CSS中的mask屬性怎么使用

CSS中的mask屬性怎么使用

CodePen Demo -- MASK linear-gradient 轉場

使用角向漸變 mask: conic-gradient() 進行切換

當然,除了 mask: linear-gradient(),使用徑向漸變或者角向漸變也都是可以的。使用角向漸變的原理也是一樣的:

@keyframes maskRotate {
    @for $i from 0 through 100 {
        #{$i}% {
            mask: conic-gradient(#000 #{$i - 10 + '%'}, transparent #{$i + '%'}, transparent);
        }
    }
}

可以實現圖片的角向漸顯/切換:

CSS中的mask屬性怎么使用

CodePen Demo -- MASK conic-gradient 轉場

這個技巧,在張鑫旭的這篇文章里,有更多豐富的例子,可以移步閱讀:

你用的那些CSS轉場動畫可以換一換了

運用這個技巧,我們就可以實現很多有意思的圖片效果。像是這樣:

CSS中的mask屬性怎么使用

mask 碰撞濾鏡與混合模式


繼續下一環節。CSS 中很多有意思的屬性,和濾鏡和混合模式一結合,會碰撞出更多火花。

mask & 濾鏡 filter: contrast()

首先,我們利用多重徑向漸變,實現這樣一張圖。

{
  background: radial-gradient(#000, transparent);
  background-size: 20px 20px;
}

CSS中的mask屬性怎么使用

看著沒什么特別,我們利用 filter: contrast() 對比度濾鏡,改造一下。代碼大概是這樣:

html,body {
    width: 100%;
    height: 100%;
    filter: contrast(5);
}
 div {
    position: relative;
    width: 100%;
    height: 100%;
    background: #fff;
         &::before {
        content: "";
        position: absolute;
        top: 0; right: 0; bottom: 0; left: 0;
        background: radial-gradient(#000, transparent);
        background-size: 20px 20px;
    }
}

即可得到這樣的圖形,利用對比度濾鏡,將圖形變得非常的銳化。

CSS中的mask屬性怎么使用

這個時候,我們再疊加上不同的 mask 遮罩。即可得到各種有意思的圖形效果。

body {
    filter: contrast(5);
}
 div {
    position: relative;
    background: #fff;
         &::before {
        background: radial-gradient(#000, transparent);
        background-size: 20px 20px;
      + mask: linear-gradient(-180deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, .5));
    }
}

CSS中的mask屬性怎么使用

CodePen Demo -- 使用 mask 搭配濾鏡 contrast

我們疊加了一個線性漸變的 mask linear-gradient(-180deg, rgba(255, 255, 255, 1), rgba(255, 255, 255, .5)),注意,兩個漸變顏色都是帶透明度的。

或者換一個徑向漸變:

{
    mask: repeating-radial-gradient(circle at 35% 65%, #000, rgba(0, 0, 0, .5), #000 25%);
}

CSS中的mask屬性怎么使用

CodePen Demo -- 使用 mask 搭配濾鏡 contrast

好的,下一步,與上文類似,我們添加上動畫。

div {
    ...
         &::before {
        background: radial-gradient(#000, transparent);
        background-size: 20px 20px;
        mask: repeating-radial-gradient(circle at 35% 65%, #000, rgba(0, 0, 0, .5), #000 25%);
        animation: maskMove 15s infinite linear;
    }
}
 @keyframes maskMove {
    @for $i from 0 through 100 {
        #{$i}% {
            mask: repeating-radial-gradient(circle at 35% 65%, #000, rgba(0, 0, 0, .5), #000 #{$i + 10 +  '%'});
        }
    }
}

看看,可以得到了非常酷炫的動畫效果:

CSS中的mask屬性怎么使用

CodePen Demo -- 使用 mask 搭配濾鏡 contrast 及動畫

還記得使用 filter: hue-rotate() 色相濾鏡嗎。再加上它,我們可以讓顏色也變化起來。

CodePen Demo -- 使用 mask 搭配濾鏡 contrast 及動畫2

mask & 濾鏡 filter: contrast() & 混合模式

接下來我們再疊加上混合模式。

注意到上面,其實我們的容器背景色是白色 #fff

我們可以通過多嵌套一層層級,再增加一個容器背景色,再疊加上混合模式,產生不一樣的效果。

先不添加使用 mask,重新構造一下結構,最終的偽代碼帶個是這樣:


    
.wrap {
    position: relative;
    height: 100%;
    background: linear-gradient(45deg, #f44336, #ff9800, #ffeb3b, #8bc34a, #00bcd4, #673ab7);
}
 .inner {
    height: 100%;
    background: #000;
    filter: contrast(700%);
    mix-blend-mode: multiply;
         &::before {
        content: "";
        position: absolute;
        top: 0; right: 0; bottom: 0; left: 0;
        background: radial-gradient(#fff, transparent);
        background-size: 12px 12px;
    }
}

原理示例圖如下:

CSS中的mask屬性怎么使用

我們就可以得到如下的效果:

CSS中的mask屬性怎么使用

OK,到這一步,mask 還沒有運用上,我們再添加上 mask。

.wrap {
    background: linear-gradient(45deg, #f44336, #ff9800, #ffeb3b, #8bc34a, #00bcd4, #673ab7);
}
 .inner {
    ...
    filter: contrast(700%);
    mix-blend-mode: multiply;
         &::before {
        background: radial-gradient(#fff, transparent);
        background-size: 12px 12px;
      + mask: linear-gradient(#000, rgba(0, 0, 0, .5));
    }
}

CSS中的mask屬性怎么使用

CodePen Demo -- mask & filter & blend-mode

實際效果比截圖好很多,可以點擊 Demo 去看看。

當然,這里疊加的是 mix-blend-mode: multiply ,可以嘗試其他混合模式,得到其他不一樣的效果。

譬如,疊加 mix-blend-mode: difference,等等等等:

CSS中的mask屬性怎么使用

更多有意思的疊加,感興趣的同學需要自己多加嘗試。

mask 與圖片

當然,mask 最本質的作用應該還是作用于圖片。上面得到的重要結論:

圖片與 mask 生成的漸變的 transparent 的重疊部分,將會變得透明。

也可以作用于 mask 屬性傳入的圖片。也就是說,mask 是可以傳入圖片素材的,并且遵循 background-image 與 mask 圖片的透明重疊部分,將會變得透明。

運用這個技巧,可以制作非常酷炫的轉場動畫:

CSS中的mask屬性怎么使用

這里其實主要是在 mask 中運用了這樣一張圖片:

CSS中的mask屬性怎么使用

然后,使用了逐幀動畫,快速切換每一幀的 mask :

.img1 {
    background: url(image1.jpg) no-repeat left top;
}
 
.img2 {
    mask: url(https://i.imgur.com/AYJuRke.png);
    mask-size: 3000% 100%;
    animation: maskMove 2s steps(29) infinite;
}
 
.img2::before {
    background: url(image2.jpg) no-repeat left top;
}
 
@keyframes maskMove {
    from {
        mask-position: 0 0;
    }
    to {
        mask-position: 100% 0;
    }
}

到此,相信大家對“CSS中的mask屬性怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!


網站題目:CSS中的mask屬性怎么使用
文章地址:http://www.xueling.net.cn/article/gopded.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 麻豆www传媒入口 | 国产精华AV午夜在线观看 | 欧美嫩交一区二区三区 | 国产字幕在线看 | 亚洲乱码中文字幕综合区 | 国产一区二区日韩精品 | 午夜色大片在线观看免费 | 黄色裸体网站 | 亚洲欧美日韩国产综合V | 精品中文字幕在线观看 | 日日拍夜夜 | 久久精品日本一区 | 国产十日韩十欧美 | 亚洲欧洲精品视频在线观看 | 手机看片日韩 | 亚洲第一精品夜夜躁人人爽 | 欧美一级淫片aaaaaaa免费 | 欧美最猛性bbbbxxxx | 日韩毛片一区二区三区 | 成人精品一区日本无码网站 | 欧美性生交xxxxx| 2019年最好看的中文免费视频 | 欧美草草 | 亚洲另类自拍小说图片 | 日韩欧美一区二区三区在线视频 | 国产AⅤ无码专区亚洲AV | 最好看的中文视频最好的中文 | 一级片免费观看视频 | av片中文字幕 | 久久久精品理论A级A片 | 国产一二三在线 | 中文字幕一级 | 亚洲乱码中文字幕综合区 | 国产亚洲三区 | 无码人妻丰满熟妇精品区 | 亚洲国产综合人成综合网站 | 久久精品国产曰本波多野结衣 | 好爽别插了无码视频 | 日韩国产一区二区 | 国产中年熟女高潮大集合 | 亚洲精品日韩在线观看 |