一个页面中有头部、底部和中间内容区域,底部固定在屏幕底端。

头部header
内容main
底部footer

方法一、在main上使用fixed定位,加上overflow-y属性。

.main {
position: fixed;
top: 50px;
bottom: 50px;
overflow-y: scroll;
}

不推荐这个fixed方案,因为页面偶尔卡住不动。

方法二、中间的main不设定位高度100%,再padding头部和尾部

  其中头部和底部的定位设为absolute会比设为fixed体验更好(况且fix布局在移动端本来就有各种各样的问题,还是尽量避开:) )。

  html, body {
height: %;
}
main {
padding: 50px ;
height: %;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}

  ps:webkit-overflow-scrolling:touch偶尔卡住或不能滑动的bug

  最常见的例子就是:

  • 在safari上,使用了-webkit-overflow-scrolling:touch之后,页面偶尔会卡住不动。
  • 在safari上,点击其他区域,再在滚动区域滑动,滚动条无法滚动的bug。
  • 通过动态添加内容撑开容器,结果根本不能滑动的bug。

1) 保证使用了该属性的元素上没有设置定位

  如果出现偶尔卡住不动的情况,那么在使用该属性的元素上不设置定位或者手动设置定位为 position: static

  这样会解决部分因为定位(relative、fixed、absolute)导致的页面偶尔不能滚动的bug。

2)如果添加动态内容页面不能滚动,让子元素height+1

  如果在-webkit-overflow-scrolling:touch属性的元素上,想通过动态添加内容来撑开容器,触发滚动,是有bug 的,页面是会卡住不动的。

  方法就是在webkit-overflow-scrolling:touch属性的下一层子元素上,将height加1%或1px。从而主动触发scrollbar

main-inner {
min-height: calc(% + 1px)
}

你也可以直接加伪元素上:

main:after {
min-height: calc(% + 1px)
}

文章摘抄自:https://www.cnblogs.com/xiahj/p/8036419.html

在safari上,解决fixed失效问题的更多相关文章

  1. ios上position:fixed失效问题

    手机端上的猫腻真是多啊~~~ 此起彼伏! 最近又遇到了 固定定位的底部导航在ios上被弹出去 此时内心1w+个草泥马奔过~~~~~~~~ 直接上解决方案: <div class="ma ...

  2. 移动端采坑:Position: fixed 在Safari上的Bug

    Position: fixed 在IOS上的显示效果 会出现两种情况: 点击fixed定位的元素会出现fixed定位失效导致的元素贴向底部,即position: absolute,bottom: 0p ...

  3. 解决iphone safari上的圆角问题

    -webkit-appearance : none ; /*解决iphone safari上的圆角问题*/

  4. ios端position为fixed失效的解决办法

    关键代码 document.getElementById("searchInputbox").addEventListener('touchmove', handler, {pas ...

  5. 微信内置浏览器H5 弹出键盘 遮盖文本框解决办法 Fixed失效

    if(/Android [4-6]/.test(navigator.appVersion)) { window.addEventListener("resize", functio ...

  6. Angular 彻底解决 Dropdown 在 Safari 上无法自动关闭的问题

    之前在 Safari 上用 focus 事件来实现 Dropdown 下拉菜单,结果在 iOS 上不兼容. 尝试了 MDN 和 stack over flow 上各种奇技淫巧,然而在 iOS 上全都败 ...

  7. 水平/竖直居中在旧版Safari上的bug

    今天调了两个出现在旧版Safari上的layout bug. 它们最初是在同事的iPad上被发现的, 我在自己桌面上安装的Safari 5.1.7上也能够复现. Bug1: .vertical-cen ...

  8. 当锚点定位遇上position: fixed

    <!DOCTYPE html><html> <head> <title>当锚点定位遇上position: fixed</title> < ...

  9. position:fixed 失效

    如果position:fixed 失效,那应该是你设置position的元素的父元素中有设置了transform属性哦 . 把 transform删除或设置为none就可以解决啦. 但是如果trans ...

随机推荐

  1. 火车头data下任务文件夹的SpiderResult.db3文件用什么软件打开

    火车头采集器默认是用sqlite数据库来保存数据的,新建一个采集,打开data/任务/发现有一个SpiderResult.db3文件,.db3是sqlite的存储文件后缀,那么要如何查看这些文件呢?用 ...

  2. 06-C#笔记-常量

    1. 进制 前缀:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制. 后缀:可以是 U 或 L 的组合,其中,U 和 L 分别表示 unsigned 和 long.后缀可以是大写或者 ...

  3. echars配置案例-reactnative

    option = { backgroundColor:'#fff', grid: { left: '3%', right: '4%', top:, bottom: '6%', containLabel ...

  4. VMware遇到的一连串问题

    之前正常运行的VMware,再次打开提示“VMware Workstation pro 无法在 windows 上运行”, 百度一波,原来是微软的更新程序引起的问题,只要将最近的一次更新程序卸载然后重 ...

  5. vue-cli3和ts建立vue项目

    第一步,如果你之前没有装vuecli,可以直接执行下面命令 npm install --global @vue/cli 注:这里我install 的时候不成,于是我用的是 cnpm install - ...

  6. 第05组 团队Git现场编程实战

    一.组员职责分工 组员 分工 卢欢(组长) 前后端接口设计 严喜 寻找相关资料 张火标 设计并描述界面原型 钟璐英 编写随笔 周华 填写完善文档 古力亚尔·艾山 填写完善文档 张聪 前后端接口设计 池 ...

  7. 为什么要使用 Go 语言?Go 语言的优势在哪里?

    golang主要特性 1.语法简单 舍弃语法糖,严格控制关键字 C++语法糖之多,令人发指,而C又太过于底层,容易出现自己造轮子的情况,如何在两者之间取舍,是每一个转向golang的工程师曾经思考过的 ...

  8. 搭建git服务器配置gitolite[迁移原来的gitolite工程]

    参考 https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664 http://www.worldhello.net/gotgit ...

  9. IDEA调试进入class文件

    今天用IDEA调试时,一直进入class文件,而没有进入java文件. 错误原因 出现这种情况,有可能是Module有多个同名的依赖,调试时程序进入了同名的jar包里面,而不是同名的Module. 如 ...

  10. windows下Apache2.4配置php的解析运行

    1.安装php7 2.安装apache2.4 3.找到apache2.4的httpd.conf文件,配置好apache,然后通过httpd.exe -k install -n "servic ...