精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

圓角大殺器,使用濾鏡構建圓角及波浪效果!

開發(fā) 前端
本文介紹了一種使用 filter: contrast() 配合 filter: blur() 的方式,將直角圖形變?yōu)閳A角圖形的方式,在一些特定的場景下,可能有著妙用。

本文,將另辟蹊徑,介紹一種使用濾鏡去構建圓角的獨特方式。

首先,我們來看這樣一個圖形:

圖片

一個矩形,沒什么特別的,代碼如下:

div {
width: 200px;
height: 40px;
background-color: #000;
}

如果,我們現(xiàn)在需要給這個矩形的兩端加上圓角,像是這樣,該怎么做呢:

圖片

So easy,不過就是加個 border-radius 而已:

div {
width: 200px;
height: 40px;
+ border-radius: 40px;
background-color: #000;
}

好,那如果,不再是直線,而是一條曲線,希望曲線兩端,帶有圓角,像是這樣,又該怎么辦呢:

圖片

到這,基本上觸及了傳統(tǒng) CSS 的天花板,想通過一個屬性搞定這個效果是不太可能了。

當然,有這樣一種方式,通過首尾兩端,利用兩個偽元素,實現(xiàn)兩個圓形,疊加上去:

圖片圖片

emm,這也是一個可行的方案,主要是定位會稍微有點點麻煩。那么除了這個方式以及直接使用 SVG 外,還有沒有其他方法能夠實現(xiàn)帶圓角的曲線?

有!在 CSS 中,我們還可以通過 filter: contrast()? 配合 filter: blur() 這對組合來實現(xiàn)這個圖形。

filter: contrast()? 配合 filter: blur() 的奇妙化學作用

在 神奇的濾鏡!巧妙實現(xiàn)內凹的平滑圓角[1] 一文中,其實已經(jīng)介紹過這個組合的另類用法。

經(jīng)常閱讀我的文章的小伙伴,對 filter: contrast()? 配合 filter: blur() 的組合一定不陌生,上經(jīng)典的一張圖:

圖片圖片

單獨將兩個濾鏡拿出來,它們的作用分別是:

  1. filter: blur():給圖像設置高斯模糊效果。
  2. filter: contrast():調整圖像的對比度。

但是,當他們“合體”的時候,產(chǎn)生了奇妙的融合現(xiàn)象。

仔細看兩圓相交的過程,在邊與邊接觸的時候,會產(chǎn)生一種邊界融合的效果,通過對比度濾鏡把高斯模糊的模糊邊緣給干掉,利用高斯模糊實現(xiàn)融合效果。

當然,重點來了,blur 與 contrast 濾鏡的組合不僅能用于這種融合效果,其特殊的性質使得它們的組合可以將直角變成圓角!

先看看之前的一個例子:

首先,我們只需要實現(xiàn)這樣一個圖形:

<div class="g-container">
<div class="g-content">
<div class="g-filter"></div>
</div>
</div>
.g-container {
position: relative;
width: 300px;
height: 100px;

.g-content {
height: 100px;

.g-filter {
height: 100px;
background: radial-gradient(circle at 50% -10px, transparent 0, transparent 39px, #000 40px, #000);
}
}
}

得到這樣一個簡單的圖形:

圖片圖片

看到這里,肯定會疑惑,為什么這個圖形需要用 3 層 div 嵌套的方式?不是一個 div 就足夠了嗎?

是因為我們又要運用 filter: contrast()? 和 filter: blur() 這對神奇的組合。

我們簡單改造一下上述代碼,仔細觀察和上述 CSS 的異同:

.g-container {
position: relative;
width: 300px;
height: 100px;
.g-content {
height: 100px;
filter: contrast(20);
background-color: white;
overflow: hidden;
.g-filter {
filter: blur(10px);
height: 100px;
background: radial-gradient(circle at 50% -10px, transparent 0, transparent 29px, #000 40px, #000);
}
}
}

我們給 .g-content? 添加了 filter: contrast(20)? 和 background-color: white?,給 .g-filter? 添加了 filter: blur(10px)。

神奇的事情發(fā)生了,我們得到了這樣一個效果:

圖片

通過對比度濾鏡把高斯模糊的模糊邊緣給干掉,將原本的直角,變成了圓角,Amazing。

通過一個 Gif 圖更直觀的感受:

圖片

完整的代碼你可以戳這里:CodePen Demo - Smooth concave rounded corners By filter[2]

通過濾鏡實現(xiàn)圓角圓弧

到這里,你應該知道如何通過直角圓弧得到圓角圓弧了。就是借助 filter: contrast()? 配合 filter: blur() 的組合。

直接上代碼:

div {
position: relative;
width: 250px;
height: 250px;
filter: contrast(20);
background-color: #fff;
overflow: hidden;
}
div::before {
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
filter: blur(7px);
border: 25px solid transparent;
border-bottom: 25px solid #000;
border-radius: 50%;
}

效果如下:

圖片圖片

通過 Gif 看,更加直觀:

圖片圖片

CodePen Demo -- Arc with rounded corners[3]

使用 filter: contrast()? 配合 filter: blur() 實現(xiàn)波浪效果

好了,有了上面的鋪墊,我們再來看一個有意思的。使用 filter: contrast()? 配合 filter: blur() 實現(xiàn)波浪效果。

在之前,我們如果想使用純 CSS,實現(xiàn)下述的波浪效果,是非常的困難的:

圖片圖片

這種波浪效果,通常會使用在優(yōu)惠券等切圖中:

圖片圖片

在之前,我們是怎么去做的呢?如果不切圖,使用純 CSS 的話,需要使用兩層漸變進行疊加,大概是這樣,感受一下:

圖片

其代碼也比較復雜,需要不斷的調試漸變,使兩個徑向漸變吻合:

div {
position: relative;
width: 400px;
height: 160px;
background: linear-gradient(90deg, #945700 0%, #f49714 100%);
&::before,
&::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom :0;
}
&::before {
width: 10px;
background-image: radial-gradient(circle at -5px 10px, transparent 12px, #fff 13px, #fff 0px);
background-size: 20px 20px;
background-position: 0 15px;
}
&::after {
width: 15px;
background-image: radial-gradient(circle at 15px 10px, #fff 12px, transparent 13px, transparent 0px);
background-size: 20px 40px;
background-position: 0 15px;
}
}

那么,如果使用 filter: contrast()? 配合 filter: blur() 的話,整個過程將會變得非常簡單。

我們只需要實現(xiàn)這樣一個圖形:

圖片

這個圖形使用漸變是容易得到的:

div {
background: radial-gradient(circle at 20px 0, transparent, transparent 20px, #000 21px, #000 40px);
background-size: 80px 100%;
}

按照上文介紹的技巧,只需要應用上 filter: contrast()? 配合 filter: blur(),就能將銳利的直角轉化成圓角。我們嘗試一下:

<div class="g-container">
<div class="g-inner"></div>
</div>
.g-container {
position: relative;
margin: auto;
height: 200px;
padding-top: 100px;
filter: contrast(20);
background-color: #fff;
overflow: hidden;
}
.g-inner {
position: relative;
height: 200px;
background: radial-gradient(circle at 20px 0, transparent, transparent 20px, #000 21px, #000 40px);
background-size: 80px 100%;
filter: blur(10px)
}

可以寫在 1 個 DIV 里面(通過元素和它的偽元素構造父子關系),也可以用 2 個,都可以,問題不大。

得到如下所示的波浪圖形:

圖片

我們希望它波浪的地方的確是波了,但是我們不希望的地方,它也變成了圓角:

圖片

這是 filter: blur()? 的一個問題,好在,我們是可以使用 backdrop-filter() 去規(guī)避掉這個問題的,我們簡單改造下代碼:

.g-container {
position: relative;
width: 380px;
padding-top: 100px;
filter: contrast(20);
background-color: #fff;
overflow: hidden;
&::before {
content: "";
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
backdrop-filter: blur(10px);
z-index: 1;
}
}
.g-inner {
position: relative;
width: 380px;
height: 100px;
background: radial-gradient(circle at 20px 0, transparent, transparent 20px, #000 21px, #000 40px);
background-size: 80px 100%;
}

這樣,我們就實現(xiàn)了一份完美的波浪效果:

圖片

部分同學可能對上面的 padding-top 100px 有所疑惑,這個也是目前我所發(fā)現(xiàn)的一個 BUG,暫未解決,不影響使用,你可以嘗試將 padding-top: 100px 替換成 height: 100px。

基于這種方式實現(xiàn)的波浪效果,我們甚至可以給它加上動畫,讓他動起來,也非常的好做,簡單改造下代碼:

.g-inner {
position: relative;
- width: 380px;
+ width: 480px;
height: 100px;
background: radial-gradient(circle at 20px 0, transparent, transparent 20px, #000 21px, #000 40px);
background-size: 80px 100%;
+ animation: move 1s infinite linear;
}
@keyframes move {
100% {
transform: translate(-80px, 0);
}
}

通過一個簡單的位移動畫,并且使之首尾幀一致,看上去就是連續(xù)的:

圖片

完整的代碼,你可以戳這里:CodePen Demo -- Pure CSS Wave[4]。

總結一下

本文介紹了一種使用 filter: contrast() 配合 filter: blur() 的方式,將直角圖形變?yōu)閳A角圖形的方式,在一些特定的場景下,可能有著妙用。

不過,這種方式也有幾個小缺陷:

  1. 使用了filter: contrast() 之后,圖形的尺寸可能相對而言會縮小一點點,要達到固定所需尺寸的話,要一定的調試
  2. 此方式產(chǎn)生的圖形,畢竟經(jīng)過了一次filter: blur(),放大來看圖形會有一定的鋸齒,可以通過調整 contrast 和 blur 的大小盡可能的去除,但是沒法完全去掉

當然,我覺得這兩個小缺點瑕不掩瑜,在特定的場景下,此方式還是有一定的用武之地的。

最后

本文到此結束,希望對你有幫助 :)

參考資料

[1]神奇的濾鏡!巧妙實現(xiàn)內凹的平滑圓角: https://github.com/chokcoco/iCSS/issues/154。

[2]CodePen Demo - Smooth concave rounded corners By filter: https://codepen.io/Chokcoco/pen/JjroBPo。

[3]CodePen Demo -- Arc with rounded corners: https://codepen.io/Chokcoco/pen/bGveoPY。

[4]CodePen Demo -- Pure CSS Wave: https://codepen.io/Chokcoco/pen/PoRzeav。

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2010-09-14 12:58:41

DIV+CSS圓角

2011-07-08 15:08:16

iPhone 圖片

2021-12-03 06:02:19

CSS濾鏡前端

2016-03-04 10:50:02

ios圓角高效添加

2023-01-16 08:11:49

Edge瀏覽器

2024-09-10 09:31:07

開源項目Arthas

2022-03-31 12:08:26

數(shù)據(jù)管理架構

2013-07-29 11:34:46

iOS開發(fā)iOS開發(fā)學習設置UITextVie

2010-08-26 15:59:38

DIV圓角

2021-02-07 07:54:24

WPF模板XAML

2013-04-18 10:01:01

Fiddler前端

2021-01-25 17:11:14

Firefox火狐瀏覽器瀏覽器

2019-06-14 08:35:14

華為禁令開發(fā)

2016-11-24 12:07:42

Android萬能圓角ImageView

2016-03-29 10:18:48

Android圖片代碼

2010-10-08 13:27:51

IE6pngJavaScript

2021-05-18 06:22:39

CSS 制作波浪技巧

2010-09-07 14:53:45

Chroma屬性CSS

2022-12-18 22:11:46

2021-06-23 10:03:05

Windows11操作系統(tǒng)微軟
點贊
收藏

51CTO技術棧公眾號

国产伦精品一区二区三区视频女| 午夜啪啪免费视频| 毛片毛片女人毛片毛片| 不卡视频在线| 精品国产一区二区三区不卡| 无码精品a∨在线观看中文| 天天干天天舔天天射| 秋霞午夜av一区二区三区| 久久视频在线播放| 一本色道久久综合亚洲精品图片| 国内精品伊人| 亚洲成人精品在线观看| 亚洲精品中文字幕在线| 色网站免费观看| 黑人精品欧美一区二区蜜桃 | 红杏成人性视频免费看| 国产麻豆日韩欧美久久| 45www国产精品网站| 四虎影视一区二区| 亚洲精品国产setv| 欧美zozozo| 午夜两性免费视频| 韩国主播福利视频一区二区三区| 亚洲天堂福利av| 日本中文不卡| 五月天激情婷婷| 国产精品资源站在线| 国产精品成人免费电影| 欧美日韩综合在线观看| 国产综合视频| 久久精品色欧美aⅴ一区二区| 人妻大战黑人白浆狂泄| 成人性生交大片免费看中文视频| 欧美精品三级在线观看| 国产成人无码一二三区视频| www.8ⅹ8ⅹ羞羞漫画在线看| 综合电影一区二区三区 | 国产污在线观看| 日本在线一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 欧美成人xxxxx| 538在线观看| 亚洲国产另类精品专区| 波多野结衣av一区二区全免费观看| 在线日本视频| 国产精品伦理一区二区| 亚洲第一导航| av中文字幕在线| 国产欧美日韩激情| 手机看片福利永久国产日韩| 国产高清在线| 国产亚洲成aⅴ人片在线观看| 欧美精品与人动性物交免费看| 五月激情婷婷网| 972aa.com艺术欧美| 国产一区二区三区色淫影院| 免费av网站观看| 高清shemale亚洲人妖| 国产91免费视频| 理论片中文字幕| 不卡一二三区首页| 快播日韩欧美| 国产视频三级在线观看播放| 国产情人综合久久777777| 日韩中文不卡| 国产在线观看91| 一区二区在线观看不卡| 国产欧美日韩小视频| а√天堂中文资源在线bt| 欧美日韩久久久久| 搡女人真爽免费午夜网站| 精品亚洲a∨| 欧美一区二区三区色| 无码人妻丰满熟妇啪啪网站| 国产精品自在| 亚洲天天在线日亚洲洲精| 日韩免费成人av| 亚洲一区二区人妻| 久久电影院7| 久久国产精品电影| 国产午夜久久久| 亚洲欧美bt| 国产一区香蕉久久| 亚洲精品久久久久久久久久| 99精品视频一区| 午夜一区二区三区| 尤物yw193can在线观看| 五月天精品一区二区三区| 日本成人在线免费视频| 国产精品一区二区三区四区在线观看| 日韩精品一区二区三区视频在线观看| 国产精品久久AV无码| 黄色不卡一区| 欧美国产日韩xxxxx| 天天干天天色综合| 国产乱对白刺激视频不卡| 久久伊人一区二区| 黄网页免费在线观看| 狠狠久久亚洲欧美专区| 欧美成人福利在线观看| 激情小说一区| 久久精品成人欧美大片古装| 天天操天天摸天天干| 久草在线在线精品观看| 精品无人乱码一区二区三区的优势| 在线视频自拍| 欧美日韩综合视频| 五月天六月丁香| 国产伦精品一区二区三区千人斩| 九九精品在线视频| 瑟瑟视频在线免费观看| www.欧美日韩国产在线| 中文一区一区三区免费| 成人影院网站| 亚洲国产精品福利| 国产成人久久久久| 日韩电影在线观看一区| 九九99玖玖| 深夜国产在线播放| 欧美日韩精品欧美日韩精品一| 一本色道综合久久欧美日韩精品| 91亚洲国产高清| 国产激情久久久久| 香蕉视频免费看| 亚洲精品一区二区三区新线路| 国产精品亚洲成人| 一区二区在线不卡| 日韩三区免费| 亚洲老头同性xxxxx| 成人免费看片98| 激情六月婷婷久久| 婷婷亚洲婷婷综合色香五月| 中文在线аv在线| 亚洲激情自拍图| 久久久久久久久久99| 国产一区二区女| 亚洲一区二区在线免费观看| 日韩另类视频| 国产亚洲精品91在线| 亚洲毛片一区二区三区| 91麻豆蜜桃一区二区三区| 妞干网在线视频观看| 97视频一区| 欧美极品少妇xxxxⅹ喷水| 精品国产18久久久久久| 亚洲欧美日韩中文字幕一区二区三区| 五月花丁香婷婷| 国产精品99视频| 成人国内精品久久久久一区| 日本中文字幕在线播放| 欧美视频一区在线| 99久久久无码国产精品不卡| 欧美aⅴ一区二区三区视频| 日韩精品久久久毛片一区二区| 香蕉成人av| 伊人亚洲福利一区二区三区| 成人黄色三级视频| 国产精品免费视频一区| 污污动漫在线观看| 亚洲v在线看| 91嫩草国产在线观看| av美女在线观看| 精品一区二区亚洲| 日批视频免费观看| 国产精品久久久久久福利一牛影视 | 久久久免费av| 九九九久久久久| bt7086福利一区国产| 91国视频在线| 成人女性视频| 亚洲aa中文字幕| 国内老司机av在线| 亚洲老板91色精品久久| 国产九色91回来了| 一区二区三区在线观看网站| 无码任你躁久久久久久老妇| 国产欧美日韩综合一区在线播放| 久久青青草原一区二区| 欧美jizz18| 国产最新精品视频| 黄色大片在线看| 91麻豆精品国产91久久久久久| 加勒比av在线播放| 久久久久亚洲蜜桃| 亚洲高清av一区二区三区| 亚洲国产免费看| 天堂va久久久噜噜噜久久va| 精品国产一区二区三区性色av| 久久久影视精品| 在线中文资源天堂| 亚洲第一精品福利| 又骚又黄的视频| 亚洲成人精品在线观看| 亚洲一级理论片| av在线不卡观看免费观看| 亚洲一区在线不卡| 激情久久综合| 亚洲欧洲一区二区| 麻豆一区一区三区四区| 国产欧美中文字幕| 美女福利一区二区| 欧美猛交免费看| 成年网站在线| 日韩av一区二区在线观看| 91tv国产成人福利| 色中色一区二区| 久久久久亚洲天堂| 国产精品国产自产拍在线| 一区二区三区少妇| 国产剧情一区二区三区| jizz欧美激情18| 在线不卡视频| 992tv快乐视频| 日本一二区不卡| 久久99精品久久久久久久青青日本| 亚洲三级电影| 国产精品第一页在线| 高潮在线视频| 欧美高跟鞋交xxxxxhd| 在线观看免费版| 亚洲人成电影在线| 视频一区二区免费| 成人情趣视频| 欧美在线视频a| 不卡一本毛片| 欧美日韩第一页| 国产婷婷视频在线| 中文字幕亚洲一区在线观看 | 欧美一区二区三区红桃小说| 91视频国产高清| 久久人体av| 国产精品欧美日韩| 精品三区视频| 国产精品91在线| 一区二区电影免费观看| 欧美诱惑福利视频| 免费在线小视频| 97在线视频免费观看| 国产后进白嫩翘臀在线观看视频| 成年人精品视频| 69成人在线| 欧美第一黄色网| 成年人国产在线观看| 欧美国产日韩一区| 国语对白在线刺激| 97视频网站入口| 松下纱荣子在线观看| 18久久久久久| 亚洲最新无码中文字幕久久| 日本人成精品视频在线| 亚洲成人不卡| 国产精品久久久久免费a∨大胸| 美女网站在线看| 日本高清+成人网在线观看| 成人免费网站视频| 国产精品视频白浆免费视频| 国产精品4hu.www| 成人高h视频在线| 蜜桃精品一区二区三区| 国产精品免费观看高清| 欧美黄色网视频| 日本欧美色综合网站免费| 欧美亚洲激情| 香蕉视频免费版| 亚洲性感美女99在线| 人妻久久久一区二区三区| 国产欧美一区二区三区国产幕精品| 欧美精品99久久| 日韩精品乱码免费| 亚洲精品免费一区亚洲精品免费精品一区| 狠狠色丁香九九婷婷综合五月 | 久久精品一区蜜桃臀影院| 国产精品天天干| 亚洲欧美国产77777| 日韩黄色在线视频| 欧美亚洲国产bt| 精品国产亚洲av麻豆| 亚洲精品国产精品自产a区红杏吧| 久久国产精品高清一区二区三区| 自拍偷拍亚洲区| 美女在线视频一区二区| 日韩—二三区免费观看av| 亚洲一级片av| 99久久免费视频.com| 中文字幕精品亚洲| 亚洲一区二区三区视频在线播放 | 精品无码久久久久久久动漫| 日韩欧美在线中字| 国产一二三区在线播放| 日韩精品乱码av一区二区| 天天爽夜夜爽视频| 久久久久国产免费免费 | 精品国产91久久久| 在线观看国产精品视频| 亚洲国产欧美一区| 日本欧美在线视频免费观看| 亚州成人av在线| 欧美男女视频| 麻豆久久久9性大片| 在线国产一区| 中文字幕无码不卡免费视频| 国产风韵犹存在线视精品| 青青草福利视频| 亚洲一二三区不卡| 中文字幕一区2区3区| 亚洲国产成人在线播放| 男人的天堂在线视频免费观看 | 人人干人人干人人| 99国产精品久久久久久久久久久| 黑人狂躁日本娇小| 91久久免费观看| 丰满少妇在线观看bd| 日韩一区二区欧美| 精品国产第一福利网站| 国产一区二区黄色| 欧美三级网页| 亚洲图片 自拍偷拍| 国产亚洲精品资源在线26u| 国产一级片视频| 日韩一区二区三区四区五区六区| 国产美女视频一区二区三区| 欧美亚洲视频在线看网址| 99re8这里有精品热视频8在线| 亚洲一区免费看| 日韩电影在线一区二区三区| 内射中出日韩无国产剧情| 亚洲一区二区三区激情| 精品人妻午夜一区二区三区四区 | 精品一区二区三区在线视频| 熟女俱乐部一区二区| 欧美日韩国产丝袜美女| 日本黄视频在线观看| 欧美激情精品久久久久久蜜臀| 24小时成人在线视频| 亚洲人体一区| 毛片不卡一区二区| 欧日韩不卡视频| 欧美日韩精品福利| 综合久久国产| 国产劲爆久久| 成人精品视频在线播放| 成人久久18免费网站麻豆| 国产一级av毛片| 精品国产电影一区二区| av丝袜在线| 久久精品中文字幕一区二区三区 | 免费一区视频| 无套内谢大学处破女www小说| 午夜欧美大尺度福利影院在线看| 亚洲美女性生活| 97视频在线观看网址| 欧美一级二级三级视频| 黑森林福利视频导航| 国产亚洲精品资源在线26u| 日本视频www色| 久久精品精品电影网| 日韩视频一二区| 久久久久久人妻一区二区三区| 成人高清视频免费观看| 日本少妇毛茸茸高潮| 亚洲精品国产suv| 亚洲精品国产精品国产| 视频在线99re| 国产精品一二三四区| 日本一级淫片色费放| 亚洲欧美国产制服动漫| 成人黄色视屏网站| 五月天综合婷婷| 成人sese在线| 午夜精品久久久久久久蜜桃| 日韩午夜在线视频| 天堂精品在线视频| 1024av视频| 国产精品美女久久久久久| 国产成人久久精品77777综合| 国内外成人免费激情在线视频网站 | 国产啊啊啊视频在线观看| 久久久福利视频| 另类欧美日韩国产在线| 毛片aaaaa| 亚洲天堂av网| 亚洲乱码一区| 免费黄色日本网站| 中文字幕欧美一| 四虎在线视频| 亚洲va电影大全| 免费视频一区二区三区在线观看| 亚洲a∨无码无在线观看| 精品动漫一区二区三区在线观看| 欧美不卡高清一区二区三区| 成人在线观看毛片| 国产午夜亚洲精品不卡| 精品人妻伦一二三区久久| 国产精品电影网站| 亚洲人成人一区二区三区| 国产精品麻豆免费版现看视频| 精品日产卡一卡二卡麻豆| 成人精品三级| 国产深夜男女无套内射| 中文字幕在线不卡|