虽然网上有很多伪CSS毛玻璃的方法,但是局限性很大。其实新的浏览器多多少少有开始支持原生的毛玻璃CSS属性。只是进展还是有点慢,普及率并不高,但可以一试效果。

代码:

  1. .className {
  2. /* Safari for macOS & iOS */
  3. -webkit-backdrop-filter: blur(5px);
  4.  
  5. /* Google Chrome */
  6. backdrop-filter: blur(5px);
  7.  
  8. /* 设置背景半透明黑色 */
  9. background: rgba(0, 0, 0, 0.8);
  10. }

给自己的网站试了下:

QQ截图20180704111342.jpg

目前的兼容性情况(2018.7.4):

QQ截图20180704111858.png

苹果和微软都开始支持这个属性了,Chrome虽然是红色,但其实也能开启。

在Chrome地址栏输入:chrome://flags#enable-experimental-web-platform-features

开启实验性功能即可。

在MDN中也介绍了除了毛玻璃以外的其他属性:

  1. /* Keyword value */
  2. backdrop-filter: none;
  3.  
  4. /* URL to SVG filter */
  5. backdrop-filter: url(commonfilters.svg#filter);
  6.  
  7. /* <filter-function> values */
  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. /* Multiple filters */
  20. backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%);
  21.  
  22. /* Global values */
  23. backdrop-filter: inherit;
  24. backdrop-filter: initial;
  25. backdrop-filter: unset;

具体可以参考:https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter

总的来说还是挺不错的属性,希望早日普及!