CSS 濾鏡 : backdrop-filter


backdrop filter屬性允許我們使用css對元素后面的內容應用過濾效果。

此屬性是定義篩選器屬性的篩選器效果模塊級別1的擴展。它使用與filter屬性相同的語法,但效果將應用於元素的背景。這種影響常見於運行ios7及以上版本的設備接口,以及os x yosemite及以上版本的設備接口。如果沒有這個特性,這種效果只能通過編輯背景圖像本身並應用剪裁和定位技術來實現。

若要使屬性具有任何可見效果,需要從嵌套元素或絕對位置沿Z軸將兩個元素堆疊在一起。另外,應用背景過濾器的元素的背景必須是半透明的。backdrop filter的工作原理是使瀏覽器引擎將目標鎖定在樣式元素后面的內容,而不是元素本身的背景。過濾效果隨后應用於該內容,在最終呈現中,背景與頁面上的其他元素合成。

對元素應用背景過濾器也會創建新的堆疊上下文,就像應用不透明度時一樣。

請注意,使用此屬性可能會對性能產生不利影響,特別是當應用於大量元素或頁面的大區域時,因此應謹慎使用。

 

官方語法

  • 語法:
    backdrop-filter: none | <filter-function-list>
  • 首字母: 
  • 適用於: 所有元素。在svg中,它應用於沒有<defs>元素和所有圖形元素的容器元素
  • 可設置動畫: 

 

<filter-function-list>

一個空間分隔的過濾函數列表,應用於它們被聲明的順序。下面是可用的篩選器函數列表,它們與篩選器屬性的篩選器功能相同。

 

 

 1 /* 關鍵詞值 */
 2 backdrop-filter: none;
 3 
 4 /* SVG 過濾器 */
 5 backdrop-filter: url(commonfilters.svg#filter);
 6 
 7 /* <filter-function> 過濾器函數 */
 8 backdrop-filter: blur(2px);
 9 backdrop-filter: brightness(60%);
10 backdrop-filter: contrast(40%);
11 backdrop-filter: drop-shadow(4px 4px 10px blue);
12 backdrop-filter: grayscale(30%);
13 backdrop-filter: hue-rotate(120deg);
14 backdrop-filter: invert(70%);
15 backdrop-filter: opacity(20%);
16 backdrop-filter: sepia(90%);
17 backdrop-filter: saturate(80%);
18 
19 /* 多重過濾器 */
20 backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);
21 
22 /* 全局值 */
23 backdrop-filter: inherit;
24 backdrop-filter: initial;
25 backdrop-filter: unset;

示例

下面是使用“背景過濾器”屬性創建磨砂玻璃效果的簡單示例。標記是一個圖像和一個包含字幕的文本的div。

<div class="container">
  <img src="https://ichef.bbci.co.uk/images/ic/976x549_b/p0121stm.jpg">
  <div class="caption">
    <h3>Morgana</h3>
    <p>played by Katie McGrath</p>
  </div>
</div>

 

標題絕對放置在圖像的底部,背景濾光片應用於它。

.caption {
  padding: 0.5em 1em;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  backdrop-filter: blur(4px);
  background-color: rgba(255, 255, 255, 0.5);
}

 

最后的效果應該是這樣的:

 

 

文章翻譯自:https://tympanus.net/codrops/css_reference/backdrop-filter/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM