中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

css不規則邊框的用法

發布時間:2021-08-11 10:09:56 來源:億速云 閱讀:223 作者:chen 欄目:web開發

這篇文章主要介紹“css不規則邊框的用法”,在日常操作中,相信很多人在css不規則邊框的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”css不規則邊框的用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

大家可能都習慣了使用box-shadow來設置盒陰影,但顧名思義,盒陰影一般陰影的投影是一個方形,如果我們遇到其他情況,想要做陰影效果應該怎么實現呢?

之前做過很多特殊的布局,比如在這兩篇文章 CSS 實現優惠券的技巧 、CSS 實現支持漸變的提示框(tooltips),如下

css不規則邊框的用法

但是一直有一個痛點就是:無法給這些圖形加上邊框

css不規則邊框的用法

今天帶來一個小技巧:利用 drop-shadow 一行代碼搞定所有不規則邊框

一、投影

這里需要利用投影 drop-shadow,這里簡單介紹一下

語法其實很簡單

filter: drop-shadow(offset-x offset-y blur-radius color)
并不是一個單獨的屬性,而是 filter 濾鏡下的一個方法

這里 offset-x、 offset-y為偏移量,blur-radius為模糊半徑,color為投影顏色。實際作用就是可以模擬真實世界的投影(透明的部分不會投影),區別如下

css不規則邊框的用法

可惜的是,雖然和 box-shadow 比較類似,但是少了擴展半徑。試想一下,如果支持了擴展半徑,那不規則邊框是不是很容易了(應該不會支持了,因為真實世界的投影也沒有擴展半徑)?

那么,drop-shadow如何生成邊框呢?

二、多重投影

box-shadow 可以很輕易的實現多重陰影

box-shadow: 0 0 3px #333, 1px 1px 5px #666, ...

可以無限疊加下去。

但是,drop-shadow可就不行了,比如

filter: drop-shadow(0 0 3px #333, 1px 1px 5px #666, ...)

可以看到瀏覽器直接認為非法了

css不規則邊框的用法

不過可以換一種思路,雖然 drop-shadow不支持,但是filter支持多種濾鏡,所以可以這樣來實現

filter: drop-shadow(0 0 3px #333) drop-shadow(0 0 3px #333) drop-shadow(0 0 3px #333)...

這樣就可以生效了

css不規則邊框的用法

是不是有點像邊框了?如果只設置 0.5px 的模糊,多疊加幾次,模糊的部分會變清晰,這個就有點像一個比較軟的筆觸,多畫幾筆就變清晰了,于是可以得到這樣的效果

css不規則邊框的用法

這樣就更加接近了,實踐下來,可能需要微調,這里給出一個比較完美的方案(重點來了~)

.wrap{
  filter: drop-shadow(0px 0px 0.5px #333) drop-shadow(0px 0px 0px #333) drop-shadow(0px 0px 0px #333) drop-shadow(0px 0px 0px #333) drop-shadow(0px 0px 0px #333)
}

css不規則邊框的用法

這樣實現的邊框已經足夠清晰,基本可以日常使用了

這段代碼中顏色比較多,可以優化一下,投影的顏色默認是跟隨當前文字顏色的,所以可以簡化為

.wrap{
  filter: drop-shadow(0 0 0.5px)drop-shadow(0 0 0)drop-shadow(0 0 0)drop-shadow(0 0 0)drop-shadow(0 0 0);
  color: #333;
}

三、使用和局限

使用方式簡單,在容器的最外層加上這一行 CSS 就行了,比如之前的優惠券例子,得到的邊框效果這樣的

css不規則邊框的用法

還有這樣的

css不規則邊框的用法

邊框還算不錯,幾乎看不出投影

不過這里需要注意的是,經過 mask 裁剪的圖形需要在外層嵌套一層父級,不然投影會被 mask 直接裁剪掉

<div class="wrap">
  <div class="coupon">
   <!--優惠券--> 
  </div>
</div>

另外,這個方案進適合比較小的邊框,如果較大的邊框,可能會比較圓滑,而且需要疊加更多的濾鏡,效果也不太好,如下

css不規則邊框的用法

這些就需要自行取舍了(一般情況下不會有太粗的邊框)

四、總結和說明

本文介紹了一個實現不規則邊框的通用方案,成本非常低,效果也非常不錯,這里總結一下:

  • drop-shadow只會對不透明部分生成投影,符合真實物理世界

  • drop-shadow不支持多重投影,filter支持多重濾鏡,可以間接實現多重投影

  • 邊框的實現原理是投影的多重疊加

  • 有些通過mask裁剪生成的圖形,需要在外包裹一層容器,再生成邊框

  • 適合比較小的邊框,過大的邊框不太理想

  • 濾鏡其實是一個比較耗費性能的屬性,不適合太范圍使用

可能大部分同學最后可能還是會選擇 “切圖.png”,不過這也算是一個解決方案 ,多一種方案總是沒錯的。

到此,關于“css不規則邊框的用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

css
AI

南安市| 交口县| 柏乡县| 望城县| 安达市| 星座| 襄城县| 大埔县| 出国| 穆棱市| 东源县| 罗城| 鄂尔多斯市| 孟津县| 日土县| 吉林市| 东至县| 滕州市| 仁化县| 婺源县| 高安市| 集贤县| 瑞金市| 平湖市| 昌平区| 佛坪县| 高州市| 抚远县| 英吉沙县| 天柱县| 嘉荫县| 哈巴河县| 巴塘县| 密山市| 观塘区| 新沂市| 南木林县| 启东市| 高青县| 宣汉县| 宜兰县|