返回顶部
首页 > 资讯 > 精选 >filter与fixed冲突的原因有哪些
  • 454
分享到

filter与fixed冲突的原因有哪些

2023-06-08 04:06:44 454人浏览 泡泡鱼
摘要

这篇文章主要介绍了filter与fixed冲突的原因有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题描述当在 body 中使用了 filter 滤镜属性的时候,会导致

这篇文章主要介绍了filter与fixed冲突的原因有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

问题描述

当在 body 中使用了 filter 滤镜属性的时候,会导致 fixed 元素定位发生错误,即不再相对 viewport 进行定位,而是相对整个网页( body 元素)进行定位。

<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>

效果图如下:注意右上角的 fixed item 元素已经不再相对屏幕视图右上角定位了。

filter与fixed冲突的原因有哪些 

解决方案

产生这个问题的原因就是:当 filter 不为 none 的时候,如果该元素或者其子元素具有 absolutefixed 属性,那么它会为其创建一个新的包含块/容器,会造成该 absolutefixed 元素的定位发生变化(就是改变了 absolutefixed 元素的定位<父>元素,变成新创建的元素)。

以上面的例子说明,当在 body 标签中使用了 filter 属性后, filter 就会生成一个新的包含块,其位置大小和 body 一样,然后 fixed 元素就会根据这个包含块进行定位,所以我们会看到 fixed 元素失去原有的特性;

但是,如果 filter 作用在根元素(即 html 标签)时,它是不会为 absolute 或 fixed 子元素创建新的包含块的。

参考: https://drafts.fxtf.org/filter-effects/#FilterProperty

所以解决方案也就很简单了,只需要将 filter 属性放在 html 标签上就好了

html {filter: grayscale(1);}

扩展

position: fixed

当一个元素包含 fixed 属性时,屏幕视口( viewport )会为其创建一个包含块( containing block ),其大小就是 viewport 的大小,然后该 fixed 元素基于该包含块进行定位。所以通常我们会说 fixed 元素是相对 viewport 来定位的。

此外, fixed 属性会创建新的层叠上下文。当元素祖先的 transfORM , perspectivefilter 属性非 none 时,容器由视口改为该祖先。

参考: Https://www.w3.org/TR/css-position-3/#fixed-pos

HTML 标签和 body 标签

两者之间的区别可以参考这边博客: http://phrogz.net/css/htmlvsbody.html

ps:HTML 元素是 max(屏幕高度<viewport高度>, 内部元素高度<body元素高度>)

感谢你能够认真阅读完这篇文章,希望小编分享的“filter与fixed冲突的原因有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: filter与fixed冲突的原因有哪些

本文链接: https://lsjlt.com/news/251676.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • filter与fixed冲突的原因有哪些
    这篇文章主要介绍了filter与fixed冲突的原因有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题描述当在 body 中使用了 filter 滤镜属性的时候,会导致...
    99+
    2023-06-08
  • flex布局与position:absolute/fixed的冲突问题有哪些
    小编给大家分享一下flex布局与position:absolute/fixed的冲突问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目实战:我们现在想做...
    99+
    2023-06-08
  • sql主键冲突的原因有哪些
    主键冲突的原因可能包括以下几个方面:1. 重复插入:当插入一条新记录时,主键值与已存在的记录的主键值重复时,就会发生主键冲突。2. ...
    99+
    2023-10-18
    sql
  • c++缓冲区溢出的原因有哪些
    C++缓冲区溢出的原因可以归纳为以下几点: 输入验证不足:当用户输入的数据长度超过了程序预留的缓冲区长度时,就会导致缓冲区溢出。...
    99+
    2023-10-23
    c++
  • ubuntu突然进不去的原因有哪些
    1. 系统文件损坏:如果某个关键系统文件损坏或丢失,可能导致Ubuntu无法正常启动。2. 硬件故障:硬件问题,如硬盘故障、内存故障...
    99+
    2023-09-20
    ubuntu
  • tomcat突然无法启动的原因有哪些
    Tomcat突然无法启动的可能原因有以下几种:1. 端口冲突:Tomcat默认使用的端口为8080,如果其他程序已经占用了该端口,T...
    99+
    2023-09-12
    tomcat
  • win10网速突然变慢的原因有哪些
    Win10网速突然变慢的原因可能有以下几种:1. 网络问题:网络连接出现问题,如无线信号不稳定、路由器故障、网络供应商出现故障等都可...
    99+
    2023-09-08
    win10
  • ubuntu突然连不上网的原因有哪些
    有以下几个可能的原因导致Ubuntu突然无法连接到互联网:1. 网络配置问题:可能是网络设置或配置文件出现了错误,导致无法正常连接到...
    99+
    2023-10-21
    ubuntu
  • mysql突然连接不上的原因有哪些
    MySQL连接不上的原因可能有以下几种:1. 服务器故障:服务器宕机、网络故障、硬件故障等情况都可能导致MySQL无法连接。2. M...
    99+
    2023-10-18
    mysql
  • win10开机突然变慢的原因有哪些
    Win10开机突然变慢的原因可能有以下几点:1. 系统启动项过多:开机时,系统会加载启动项,如果启动项过多,将导致系统启动变慢。2....
    99+
    2023-08-25
    win10
  • ubuntu图标突然变大的原因有哪些
    系统设置被更改:用户可能不小心更改了系统设置,导致图标大小变大。 显示屏分辨率更改:如果用户更改了显示屏分辨率,可能会导致图标变大...
    99+
    2024-03-02
    ubuntu
  • sqlserver查询突然很慢的原因有哪些
    SQL Server 查询突然变慢可能有多种原因,以下是一些常见的原因: 索引失效:如果查询涉及的表没有正确的索引,或者索引失效...
    99+
    2024-04-09
    sqlserver
  • 电脑网速突然变慢的原因有哪些
    本篇内容主要讲解“电脑网速突然变慢的原因有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“电脑网速突然变慢的原因有哪些”吧!一:你所在的宽带线路老化,或者猫(路由器)损坏如果是用户的宽带线路出...
    99+
    2023-06-28
  • win10电脑网速突然变慢的原因有哪些
    Win10电脑网速突然变慢的原因有很多,可能包括以下几个方面:1. 网络连接问题:包括网络供应商的服务中断、路由器或调制解调器的问题...
    99+
    2023-09-01
    win10
  • Word突然复制粘贴不了的原因有哪些
    Word突然无法复制粘贴的原因可能有以下几种: Word程序出现故障:某些Word程序错误或冲突可能导致复制粘贴功能无法正常工作...
    99+
    2023-10-21
    Word
  • 电脑突然开始频繁死机的原因有哪些
    电脑频繁死机可能有以下原因:1. 硬件故障:如内存问题、硬盘故障、电源问题等。2. 运行过多的程序或任务:当电脑同时运行过多的程序或...
    99+
    2023-09-07
    电脑
  • windows声卡驱动突然就没了的原因有哪些
    这篇文章主要介绍“windows声卡驱动突然就没了的原因有哪些”,在日常操作中,相信很多人在windows声卡驱动突然就没了的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2023-02-08
    windows
  • SQL数据库突然连接不上的原因有哪些
    服务器故障:数据库服务器可能出现了故障,导致无法连接。 网络问题:网络连接不稳定或者网络故障可能导致数据库无法连接。 配...
    99+
    2024-04-09
    SQL
  • 造成香港服务器突然断网的原因有哪些
    造成香港服务器突然断网的原因有哪:1、服务器机房电信出口异常导致;2、香港服务器硬件设备出现老化、损坏等问题导致;3、香港服务器电源无法供应导致;4、香港服务器机器设备出现故障导致;5、香港服务器遭受恶意网络攻击导致;6、管理香港服务器的技...
    99+
    2024-04-02
  • 美国服务器突然变得很卡的原因有哪些
    美国服务器突然变得很卡的原因有:1、美国服务器网络波动大或者出现故障问题导致;2、美国服务器中的应用程占用服务器硬件资源过高导致;3、美国服务器遭受大规模网络攻击导;4、美国服务器的硬盘出现读写故障导致。具体内容如下:服务器出现网络波动由于...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作