关键词:
页面滑动、滚动,元素闪现、消失、隐藏、空白,css样式position: relative;,z-index
发现问题:
滑动页面时,页面元素闪现、隐藏、空白、消失
定位:
通过safari浏览器开发者链接手机页面,定位发现被隐藏的元素中都有position: relative; css样式
将该样式取消后发现页面恢复正常
查找问题根源:
根据该属性查找定义:developer.mozilla.org/zh-CN/docs/…
发现其中有这么一段描述:
relative
该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)。position:relative 对 table-*-group, table-row, table-column, table-cell, table-caption 元素无效。
可知在某些页面布局调整情况下,元素所在位置会留下空白。
解决过程与方案:
1、删除relative会导致它的position:absolute; 子元素定位出现问题,所以需要寻找其他方式
2、我们知道relative定位和z-index的关系,即relative属性会使该元素创建一个子空间,也就是层级上下文,所以怀疑与z-index有关
3、通过设置z-index为1发现,页面恢复正常
4、通过设置z-index为0、-1,发现问题出现,所以推断在设置了position: relative;样式的情况下,元素在页面布局发生变化时,或者说定义中”元素先放置在未添加定位时的位置“的时机,元素的z-index可能处于0或-1的状态,验证一下
发现zindex是空,和推断不一致。。(只是个探索~~ , 解决方案请看3)