精品欧美一区二区三区在线观看 _久久久久国色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ⅴ| 欧美激情aaaa| www.av天天| 欧美日韩午夜电影网| 狠狠躁夜夜躁人人爽超碰91| 亚洲欧洲中文| 天天色综合av| 久久av老司机精品网站导航| 97在线观看免费| 美女爆乳18禁www久久久久久| 电影中文字幕一区二区| 色婷婷综合久久久久中文 | 狠狠爱免费视频| 香蕉视频网站在线观看| 成人av先锋影音| 成人精品视频久久久久| 国产无遮挡又黄又爽在线观看| 欧美最新另类人妖| 亚洲精品一区二区三区99| 激情黄色小视频| 在线免费看h| 一区二区三区欧美| 色综合视频二区偷拍在线| 三级网站免费观看| 国产美女主播视频一区| 国产精品第100页| 亚洲精品国产精品乱码| 欧美日本一区二区视频在线观看| 亚洲亚裔videos黑人hd| 中文在线永久免费观看| 亚洲免费一区三区| 欧美理论电影在线| 欧美 日韩 国产 激情| 深夜av在线| 午夜欧美2019年伦理| 日韩不卡视频一区二区| 天天影视久久综合| 欧美激情综合五月色丁香小说| 国产一区在线免费观看| 亚洲黄色小说网| 国产精品一区二区在线观看不卡 | 久久精品91久久久久久再现| 中文字幕黄色网址| 精品久久久亚洲| 亚洲视频一区二区三区| 国产免费看av| 国产一区网站| 伊人精品在线观看| 摸摸摸bbb毛毛毛片| 国产精品一区二区av日韩在线| 亚洲精品久久久久| 给我免费观看片在线电影的| 欧美日韩夜夜| 日韩国产中文字幕| 白丝女仆被免费网站| 亚洲aaa级| 亚洲系列中文字幕| 成人信息集中地| 亚洲精品97| 欧美日韩电影在线观看| 久青草免费视频| 日韩视频一区| 国产97在线视频| 中文字幕在线视频免费| 极品美女销魂一区二区三区 | 日韩啪啪网站| 亚洲欧美日韩一区在线| 亚洲女优在线观看| 久久中文视频| 欧美国产乱视频| 六月丁香在线视频| 日韩精品欧美成人高清一区二区| 国产精品久久网| 精品国产av 无码一区二区三区| 国产成人免费视频网站高清观看视频 | 精国产品一区二区三区a片| 午夜日韩激情| 欧美在线中文字幕| 最近中文字幕在线免费观看| 国产精选一区二区三区| 黑人中文字幕一区二区三区| 成人亚洲性情网站www在线观看| 中文字幕在线免费不卡| 国产精品成人久久电影| 精品欧美日韩精品| 日韩午夜三级在线| 无码人妻精品一区二区中文| 91成人超碰| 日本精品视频在线| av网站免费大全| 久久蜜桃av一区二区天堂| 老司机av福利| 忘忧草在线影院两性视频| 欧美日韩卡一卡二| 波多野结衣一二三区| 99久久精品国产亚洲精品| 国内精品视频久久| 一级片在线观看视频| av男人天堂一区| 9999在线观看| 欧美电影h版| 精品欧美一区二区在线观看| 精品人妻中文无码av在线| 欧美日韩影院| 国产精品香蕉av| 天堂中文在线官网| 亚洲女同ⅹxx女同tv| 红桃av在线播放| caoporn成人| 日韩中文字幕在线精品| www.国产高清| 国产成人亚洲精品青草天美| 在线视频不卡一区二区| 成人做爰视频www网站小优视频| 精品欧美一区二区久久| 香蕉成人在线视频| 久久男女视频| 久久久av水蜜桃| 欧洲一区二区三区| 欧美高清你懂得| 影音先锋男人在线| 久久天天综合| 免费99视频| 人成在线免费网站| 精品av综合导航| 黄色一级片在线免费观看| 麻豆国产一区二区| 日日夜夜精品网站| 美女日韩欧美| 亚洲男人天天操| 国产成人亚洲精品自产在线| 福利电影一区二区三区| 国产91沈先生在线播放| 国产精品一区二区精品视频观看| 最近的2019中文字幕免费一页 | 欧美肥胖老妇做爰| 亚洲一区 欧美| 日韩 欧美一区二区三区| 免费精品视频一区| 中文字幕人成乱码在线观看| 亚洲激情视频在线播放| 欧美日韩中文视频| 成人黄色小视频在线观看| av日韩在线看| 国产极品模特精品一二| 久久久久久香蕉网| 人人妻人人澡人人爽精品日本| 一区二区三区久久| 国产精品一区二区在线免费观看| 精品91视频| 久久久久欧美| 亚洲www免费| 中文字幕亚洲欧美一区二区三区| 在线视频 中文字幕| 中日韩av电影| aaa一级黄色片| 欧美黄色精品| 国产尤物99| 精品3atv在线视频| 在线视频日本亚洲性| 在线视频精品免费| 中文字幕日韩精品一区| 国产成人强伦免费视频网站| 狠狠色丁香久久综合频道| 91热福利电影| av中文在线资源库| 亚洲欧美激情精品一区二区| www.亚洲激情| 亚洲精品久久7777| 好男人香蕉影院| 日韩电影网1区2区| 成人手机视频在线| 好吊妞视频这里有精品 | av一区二区不卡| 99热手机在线| 欧美xxx在线观看| 精品在线视频一区二区| 精品免费av在线| 欧美精品在线观看| 三级在线视频| 在线电影国产精品| 国产无套粉嫩白浆内谢| 久久精品日韩一区二区三区| 色姑娘综合天天| 亚洲一区二区三区四区五区午夜 | 欧美亚洲免费高清在线观看| 国产成人77亚洲精品www| 久久99亚洲热视| 国产精品影院在线| 日韩欧美国产一区在线观看| 精品国产xxx| 一区二区三区国产豹纹内裤在线| 99久久久久久久久久| 国产精品99久久久久久宅男| 免费无码av片在线观看| 我不卡手机影院| 欧美在线视频二区| 波多野结衣欧美| 成人福利视频在线观看| 欧美男男tv网站在线播放| www.久久久久久.com| 深夜福利免费在线观看| 日韩免费视频一区| 免费一级a毛片| 婷婷开心久久网| 日韩视频中文字幕在线观看| 91在线观看免费视频| 福利片一区二区三区| 亚洲综合二区| 日b视频免费观看| 五月婷婷亚洲| 亚洲国产日韩欧美| 中文有码一区| 久久成人资源| 国产调教精品| 国产成人精品福利一区二区三区| 日本午夜精品久久久久| 国产精品678| 中文一区一区三区高中清不卡免费 | 国产欧美在线一区二区| 久久视频免费| 成人综合网网址| jizzyou欧美16| 日本最新高清不卡中文字幕| 久草在线中文最新视频| 欧美激情综合色| 在线观看小视频| 久久精品国产亚洲一区二区| 中文字幕日本在线| 中文字幕久久久| 电影在线一区| 中文字幕av一区二区| 国产女人在线观看| 亚洲欧美变态国产另类| 欧洲亚洲在线| 日韩成人性视频| 天堂网www中文在线| 亚洲国产精品女人久久久| 日本wwwxxxx| 精品美女一区二区| 三级网站在线看| 日韩精品在线免费观看| 天堂网www中文在线| 亚洲欧美中文日韩在线v日本| 欧美69xxxxx| 亚洲全黄一级网站| chinese偷拍一区二区三区| 一区二区亚洲欧洲国产日韩| 在线视频91p| 久久久精品2019中文字幕神马| 黄网页在线观看| 欧美日本在线视频中文字字幕| 国产区美女在线| 91精品成人久久| 日韩av福利| 91精品免费久久久久久久久| 欧美9999| 精品一区二区三区国产| 久久av影视| 一区二区不卡视频| 欧美一区成人| 波多野结衣综合网| 羞羞视频在线观看欧美| 我要看一级黄色大片| 国产一区二区三区在线看麻豆| 三上悠亚 电影| 99麻豆久久久国产精品免费 | 久久精品久久99| 成人午夜电影小说| 美女100%无挡| 亚洲欧美日本韩国| 国产免费观看av| 欧美午夜在线一二页| 国产成人三级在线播放| 日韩精品免费综合视频在线播放| 国产三级在线免费观看| 美女精品视频一区| 色是在线视频| 成人免费视频网址| 牛牛精品成人免费视频| 亚洲视频导航| 日韩午夜激情| 亚洲午夜精品一区| 91视视频在线直接观看在线看网页在线看| 蜜乳av中文字幕| 亚洲妇熟xx妇色黄| 最近中文字幕免费观看| 亚洲精品一区二区在线观看| jizz亚洲| 91精品国产高清自在线| 视频91a欧美| 欧美日韩国产免费一区二区三区| 亚洲综合色站| www黄色在线| 懂色av一区二区在线播放| 国产成人精品无码免费看夜聊软件| 亚洲黄色av一区| 国产偷人爽久久久久久老妇app| 亚洲精品一区二区精华| 欧美videos极品另类| 欧洲成人午夜免费大片| 日韩中文在线| 亚洲精品久久久久久一区二区| 夜夜嗨一区二区三区| 五月天国产视频| 欧美激情一区二区三区不卡| 日韩免费不卡视频| 欧美一区二区三区白人| 国产经典自拍视频在线观看| 久久久免费观看| 日本少妇精品亚洲第一区| 亚洲一区二区不卡视频| 久久av一区| 亚洲av成人无码一二三在线观看| 日韩毛片一二三区| 中文字幕日本人妻久久久免费| 日韩精品视频在线播放| 成年人视频免费在线播放| 亚洲一区二区三区在线视频| 日韩在线高清| 亚洲人辣妹窥探嘘嘘| 久久亚洲一区二区三区明星换脸| 久久久久久久久久久网| 日韩一区二区三区视频在线观看| 日本在线www| 国产精品美女视频网站| sdde在线播放一区二区| 国产成人精品视频ⅴa片软件竹菊| 99精品国产视频| 在线观看 中文字幕| 亚洲国产日韩欧美在线动漫| av资源一区| 国产综合av一区二区三区| 亚洲国产国产亚洲一二三| 日本三级日本三级日本三级极| 亚洲国产wwwccc36天堂| 隣の若妻さん波多野结衣| 国内精品小视频| 亚洲图区在线| 美女网站免费观看视频| 欧美激情一区二区三区四区| 中文字幕视频一区二区| 色青青草原桃花久久综合| 欧美爱爱视频| 四虎影院一区二区| 国产一区二区三区日韩| 青青草偷拍视频| 日韩av在线免费看| av高清不卡| 亚洲精品在线免费看| 美女久久久精品| 无码黑人精品一区二区| 欧美成人一区二区三区片免费| 牛牛精品在线视频| 九九九九久久久久| 日韩精品乱码免费| 久久成人小视频| 欧美va亚洲va在线观看蝴蝶网| 9lporm自拍视频区在线| 日本一区二区在线| 卡一卡二国产精品| 久久丫精品久久丫| 亚洲免费精彩视频| 懂色aⅴ精品一区二区三区| 一道本在线观看视频| 成人国产精品免费观看视频| 国产91国语对白在线| 久久精品国产亚洲7777| 精品一区二区男人吃奶| 日本成人黄色网| 尤物在线观看一区| 日本亚洲欧美| 91精品在线看| 国产精品丝袜xxxxxxx| 永久av免费网站| 亚洲国产天堂网精品网站| 亚洲综合av一区二区三区| 法国空姐在线观看免费| 99re这里只有精品首页| 91片黄在线观看喷潮| 91国产视频在线| 日韩在线视屏| 一级特级黄色片| 欧美高清hd18日本| 中文字幕成在线观看| 欧美a级黄色大片| 久久久美女毛片| 亚洲第一视频在线播放| 国产精品视频网| 日韩亚洲国产欧美| 日本一级片免费| 亚洲石原莉奈一区二区在线观看| 亚洲经典视频| 在线黄色免费看| 色婷婷综合久久久久中文|