问题

在position:fixed的使用中,突然发现某个操作之后,fixed定位的位置变了??
bottom:0,left:0。本来应该在最下面,结果跑没影了。
wtf?position:fixed不是根据视口定位的吗?

Stacking Context -- 堆叠上下文

哦,如果position:fixed的父元素加了transform:xxx之后position:fixed会根据父元素定位。
原因应该是transform:xxx形成了Stacking Context -- 堆叠上下文。

堆叠上下文(Stacking Context):堆叠上下文是 HTML 元素的三维概念,这些 HTML 元素在一条假想的相对于面向(电脑屏幕的)视窗或者网页的用户的 z 轴上延伸,HTML 元素依据其自身属性按照优先级顺序占用层叠上下文的空间。
堆叠上下文的创建,该元素会影响其子元素的固定定位。设置了 position:fixed 的子元素将不会基于 viewport 定位,而是基于这个父元素。

So,如何触发一个元素形成 堆叠上下文 ?方法如下(参考自 MDN):

根元素 (HTML),

  1. z-index 值不为 "auto"的 绝对/相对定位,
  2. 一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline-flex,
  3. opacity 属性值小于 1 的元素(参考 the specification for opacity),
  4. transform 属性值不为 "none"的元素,
  5. mix-blend-mode 属性值不为 "normal"的元素,
  6. filter值不为“none”的元素,
  7. perspective值不为“none”的元素,
  8. isolation 属性被设置为 "isolate"的元素,
  9. position: fixed
  10. 在 will-change 中指定了任意 CSS 属性,即便你没有直接指定这些属性的值
  11. -webkit-overflow-scrolling 属性被设置 "touch"的元素

so,都会影响position:fixed 定位吗?不是
会影响的只有:

  1. transform 属性值不为 none 的元素
  2. perspective 值不为 none 的元素
  3. 在 will-change 中指定了任意 CSS 属性

引发问题的原因?

呃,zepto的$(el).show();会给元素加transform-origin: 0px 0px 0px; opacity: 1; transform: scale(1, 1);

解决方案

就改成 $(el).css('display', 'block')。。

position:fixed not work?的更多相关文章

  1. position:fixed和scroll实现div浮动【示例】

    前言 在自己建站的过程中,要实现一个div随滚动条浮动的效果,网上找了些示例不太好用,还是自己动手,丰衣足食,写的不好请大家谅解,毕竟我不是搞前端的,因为自己建站毕竟每一步都必须自己来,这边只是做个记 ...

  2. 修正IE6不支持position:fixed的bug(转)

    众所周知IE6不支持position:fixed,这个bug与IE6的双倍margin和不支持PNG透明等bug一样臭名昭著.前些天我做自己的博客模板的时候,遇到了这个问题.当时就简单的无视了IE6— ...

  3. 通过定位position="fixed"实现网页内容的固定层效果

    在网页的顶部或者底部导航栏中经常需要使用到固定层的效果,即紧挨浏览器窗口的顶部或底部而网页其他内容的影响. 一.实现 主要通过设置导航栏元素的位置属性position="fixed" ...

  4. 让IE6支持position:fixed的方法,CSS expression与JavaScript eval讲解

    做吸顶效果或是固定效果时,使用position:fixed无非是最方便的,可是万恶的IE6是没有fixed这个属性值的,而我们要使IE6能够像fixed一样固定在浏览器中的某个位置,使用onscrol ...

  5. 安卓手机微信页面position: fixed位置错误

    今天做项目的时候发现动用position: fixed做弹窗时,用margin-top:50%这样外边距来响应式的控制位置时,在微信里打开页面的弹窗,弹窗在手机上显示的位置和实际上在手机上的位置不一样 ...

  6. 解决IOS safari在input focus弹出输入法时不支持position fixed的问题

    该文章为转载 我们在做移动web应用的时候,常常习惯于使用position:fixed把一个input框作为提问或者搜索框固定在页面底部.但在IOS的safari和webview中,对position ...

  7. 不受控制的 position:fixed

    本文为纯理论文章,没有 Demo,没有配图,可能会略微枯燥. 大家都知道,position:fixed 在日常的页面布局中非常常用,在许多布局中起到了关键的作用.它的作用是: position:fix ...

  8. 苹果手机对网页上样式为position:fixed的弹窗支持不好的解决办法

    在Web页面上,如果想模拟对话框效果,一般会给div元素添加position:fixed的样式来实现,然后给背景添加一个半透明的遮罩.如: .fixedDiv { position: fixed; t ...

  9. display、box-sizing,position有哪些值?

    display有哪些值? none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元素前后没有换行符. inline- ...

随机推荐

  1. Mysql学习路线

    本文内容: mysql学习路线 首发日期:2018-04-19 由于现在很多都是有api了,很多问题都转接到编程语言上来处理了,所以这篇mysql之路仅仅是作为“了解”之用.不深究mysql. 很多东 ...

  2. mysql备份与还原!

    一.备份常用操作基本命令 1.备份命令mysqldump格式 格式:mysqldump -h主机名  -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql 2.备份M ...

  3. 英语口语练习系列-C07-谈女孩

    <将进酒>·李白 君不见黄河之水天上来,奔流到海不复回. 君不见高堂明镜悲白发,朝如青丝暮成雪. 人生得意须尽欢,莫使金樽空对月. 天生我材必有用,千金散尽还复来. 烹羊宰牛且为乐,会须一 ...

  4. ipa企业签名

    包天包周包月季度包年套餐_app/ios应用企业签名_ios企业签名 常见问题 需要提供 App 的源码吗? 不需要源码,只发 ipa 或者 app 格式的安装包即可. 客户怎么安装签名好的软件? 安 ...

  5. Maven pom.xml中的元素modules、parent、properties以及import

    前言 项目中用到了maven,而且用到的内容不像利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)用的那么简单:maven的核心是pom.xml,那么我就它 ...

  6. Angular5 路由守卫

    今年下半年一直很忙,没有多少时间来写博客,很多笔记都记在了本地一起提交到了git上边. 夏末的时候做的两个vue项目中有接触到vue的路由守卫,今天在另外一个angular上,发现路由守卫有异常,导致 ...

  7. React Router路由传参方式总结

    首先我们要知道一个前提,路由传递的参数我们可以通过props里面的属性来获取.只要组件是被<Router>组件的<component>定义和指派的,这个组件自然就有了props ...

  8. pyinstaller 打包selenium脚本 取消cmd

    更改源代码 找到文件(selenium->webdriver->common->service.py) 添加一个参数

  9. Spring Security(三十四):10.4 Jackson Support

    Spring Security has added Jackson Support for persisting Spring Security related classes. This can i ...

  10. Spring boot整合Mybatis

    时隔两个月的再来写博客的感觉怎么样呢,只能用“棒”来形容了.闲话少说,直接入正题,之前的博客中有说过,将spring与mybatis整个后开发会更爽,基于现在springboot已经成为整个业界开发主 ...