在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题描述 当在 <html> <head> <title>css filter issue</title> <style> body { height: 600px; background: red; filter: grayscale(1); /* 关键代码 */ } .fixed { color: yellow; position: fixed; top: 0; right: 0; } </style> </head> <body> <div class="fixed">fixed item</div> </body> </html> 效果图如下:注意右上角的
解决方案 产生这个问题的原因就是:当 以上面的例子说明,当在 但是,如果 filter 作用在根元素(即 html 标签)时,它是不会为 absolute 或 fixed 子元素创建新的包含块的。 参考: https://drafts.fxtf.org/filter-effects/#FilterProperty 所以解决方案也就很简单了,只需要将 html { filter: grayscale(1); } 扩展 1. 当一个元素包含 此外, 参考: https://www.w3.org/TR/css-position-3/#fixed-pos 2. 两者之间的区别可以参考这边博客: http://phrogz.net/css/htmlvsbody.html ps:HTML 元素是 max(屏幕高度<viewport高度>, 内部元素高度<body元素高度>) 到此这篇关于详解filter与fixed冲突的原因及解决方案的文章就介绍到这了,更多相关filter与fixed冲突内容请搜索极客世界以前的文章或继续浏览下面的相关文章,希望大家以后多多支持极客世界! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论