首页 > web前端 > css教程 > 正文

如何解决移动端fixed元素不显示的问题

不言
发布: 2018-08-02 10:44:06
原创
3274人浏览过

这篇文章给大家介绍的内容是关于如何解决移动端fixed元素不显示的问题,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

上几周给公司app做了一个html5嵌套页面,页面并不复杂,展示内容较多,底部有footer

html结构如下

<style>
  .main{
    position: absolute;
    top: 0;
    bottom: 88px;
    left: 0;
    width: 100%;
    overflow-y: auto;
  }
  footer{
    position: fixed;
    left: 0;
    bottom: 0;
    width: 100%;
  }
<style>
<body>
  <div class="main">
    ...
  </div>
  <footer></footer>
</body>
登录后复制

内容调试完成后插入了一些其他项目的事,后来app开发告诉我要监听页面scroll让我不要用定位布局。我看页面上没有可以输入的地方,不会出现fixed元素乱跑的事情。于是main部分改成了普通布局,然后就出了bug:
安卓上一切正常,IOS10上有时进入页面的时候footer不显示,拖拽或者双击之后才会显示(其他版本的IOS测试说有的又是正常的)

遇到这个问题第一个想法就是把footer的z-index调高,设置到1000,结果无用。仔细观察不显示的页面他们的内容部分都很短,没有撑到footer的位置,猜想是body高度问题,给body加上样式调试

AVCLabs
AVCLabs

AI移除视频背景,100%自动和免费

AVCLabs 268
查看详情 AVCLabs
background: #fafafa;
min-height: 100vh;
登录后复制

整个页面背景确实变灰了,但是footer依旧不显示

和同事讨论之后,猜测是手机渲染出了层级问题,一开始footer没有渲染出来,click或者touchmove之后页面重新渲染footer就正常了。
当时已经临近上线了,为了尽快解决bug不折腾,给footer设置了tanslateZ,这样相当于创建了一个独立的层级

-webkit-transform: translateZ(1px)
transform: translate(1px)
登录后复制

页面上还有1个弹层设置了z-index,footer有了translate弹层覆盖不住,说明tranzlateZ层级更高。弹层设置了translateZ(2px)就正常了
这个方法不太优雅,但好处在不改变布局,情况紧急的时候下还是适用的

相关文章推荐:

css中圣杯布局和双飞翼布局的介绍(附代码)

css中如何实现浮动的元素换行

以上就是如何解决移动端fixed元素不显示的问题的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号