我的编程空间,编程开发者的网络收藏夹
学习永远不晚

filter与fixed冲突的原因有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

filter与fixed冲突的原因有哪些

这篇文章主要介绍了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冲突的原因有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

filter与fixed冲突的原因有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

filter与fixed冲突的原因有哪些

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

flex布局与position:absolute/fixed的冲突问题有哪些

小编给大家分享一下flex布局与position:absolute/fixed的冲突问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目实战:我们现在想做
2023-06-08

sql主键冲突的原因有哪些

主键冲突的原因可能包括以下几个方面:1. 重复插入:当插入一条新记录时,主键值与已存在的记录的主键值重复时,就会发生主键冲突。2. 存在空值:主键字段不允许为空,如果尝试插入或更新记录时,主键字段存在空值,就会发生主键冲突。3. 手动修改主
2023-10-18

c++缓冲区溢出的原因有哪些

C++缓冲区溢出的原因可以归纳为以下几点:输入验证不足:当用户输入的数据长度超过了程序预留的缓冲区长度时,就会导致缓冲区溢出。如果在读取用户输入之前没有对输入数据进行合法性检查和长度验证,缓冲区溢出就有可能发生。字符串处理函数的不安全使用:
2023-10-23

ubuntu突然进不去的原因有哪些

1. 系统文件损坏:如果某个关键系统文件损坏或丢失,可能导致Ubuntu无法正常启动。2. 硬件故障:硬件问题,如硬盘故障、内存故障或主板故障,可能导致Ubuntu无法启动。3. 软件更新问题:如果在更新Ubuntu系统时出现错误或中断,可
2023-09-20

mysql突然连接不上的原因有哪些

MySQL连接不上的原因可能有以下几种:1. 服务器故障:服务器宕机、网络故障、硬件故障等情况都可能导致MySQL无法连接。2. MySQL服务未启动:MySQL服务未正确启动或已停止,导致无法连接。3. 端口被占用:MySQL默认使用33
2023-10-18

sqlserver查询突然很慢的原因有哪些

SQL Server 查询突然变慢可能有多种原因,以下是一些常见的原因:索引失效:如果查询涉及的表没有正确的索引,或者索引失效,会导致查询性能下降。硬件故障:服务器硬件故障、磁盘空间不足、内存不足等问题会导致查询性能下降。数据量增大:随着数
sqlserver查询突然很慢的原因有哪些
2024-04-09

win10网速突然变慢的原因有哪些

Win10网速突然变慢的原因可能有以下几种:1. 网络问题:网络连接出现问题,如无线信号不稳定、路由器故障、网络供应商出现故障等都可能导致网速变慢。2. 软件问题:某些软件可能占用了大量的网络带宽,导致其他应用程序的网速变慢。3. 病毒或恶
2023-09-08

tomcat突然无法启动的原因有哪些

Tomcat突然无法启动的可能原因有以下几种:1. 端口冲突:Tomcat默认使用的端口为8080,如果其他程序已经占用了该端口,Tomcat将无法启动。可以通过更改Tomcat的端口号来解决这个问题。2. 配置错误:可能是由于配置文件中的
2023-09-12

win10开机突然变慢的原因有哪些

Win10开机突然变慢的原因可能有以下几点:1. 系统启动项过多:开机时,系统会加载启动项,如果启动项过多,将导致系统启动变慢。2. 软件冲突:如果多个软件同时启动,或者某个软件与系统不兼容,都可能导致开机变慢。3. 系统服务问题:某些系统
2023-08-25

ubuntu突然连不上网的原因有哪些

有以下几个可能的原因导致Ubuntu突然无法连接到互联网:1. 网络配置问题:可能是网络设置或配置文件出现了错误,导致无法正常连接到网络。可以检查网络配置文件(如/etc/network/interfaces)或使用网络管理工具(如Netw
2023-10-21

ubuntu图标突然变大的原因有哪些

系统设置被更改:用户可能不小心更改了系统设置,导致图标大小变大。显示屏分辨率更改:如果用户更改了显示屏分辨率,可能会导致图标变大。主题更改:更换主题时,可能会影响图标的大小。操作系统更新:在操作系统更新过程中,可能会出现一些bug导致
ubuntu图标突然变大的原因有哪些
2024-03-02

电脑网速突然变慢的原因有哪些

本篇内容主要讲解“电脑网速突然变慢的原因有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“电脑网速突然变慢的原因有哪些”吧!一:你所在的宽带线路老化,或者猫(路由器)损坏如果是用户的宽带线路出
2023-06-28

Word突然复制粘贴不了的原因有哪些

Word突然无法复制粘贴的原因可能有以下几种:Word程序出现故障:某些Word程序错误或冲突可能导致复制粘贴功能无法正常工作。可以尝试关闭并重新启动Word程序,或者重新安装Word程序来解决问题。系统剪贴板问题:系统剪贴板可能出现问题,
2023-10-21

win10电脑网速突然变慢的原因有哪些

Win10电脑网速突然变慢的原因有很多,可能包括以下几个方面:1. 网络连接问题:包括网络供应商的服务中断、路由器或调制解调器的问题,以及网络线路的故障等。2. 病毒或恶意软件感染:电脑被病毒或恶意软件感染可能会导致网络速度减慢。3. 软件
2023-09-01

windows声卡驱动突然就没了的原因有哪些

这篇文章主要介绍“windows声卡驱动突然就没了的原因有哪些”,在日常操作中,相信很多人在windows声卡驱动突然就没了的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”windows声卡驱动突然
2023-02-08

电脑突然开始频繁死机的原因有哪些

电脑频繁死机可能有以下原因:1. 硬件故障:如内存问题、硬盘故障、电源问题等。2. 运行过多的程序或任务:当电脑同时运行过多的程序或任务时,系统资源可能会被耗尽,导致死机。3. 病毒或恶意软件感染:病毒或恶意软件可能会破坏系统文件或资源,导
2023-09-07

SQL数据库突然连接不上的原因有哪些

服务器故障:数据库服务器可能出现了故障,导致无法连接。网络问题:网络连接不稳定或者网络故障可能导致数据库无法连接。配置错误:数据库连接信息配置错误,比如用户名、密码、主机地址等配置错误。防火墙设置:防火墙可能会阻止数据库连接,需要检查防火墙
SQL数据库突然连接不上的原因有哪些
2024-04-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录