全部,
我正在开发一个包含非常“高”表单的 Web 应用程序。(高,这意味着它比典型的屏幕高百分之几)。
该设计要求将“页脚”锚定在始终可见的屏幕底部,无论用户在表单中的位置如何。
换句话说,无论用户是靠近窗体的顶部、中间还是底部,页脚都应该是可见的,并且窗体应该在它的“下方”滚动。
为了实现这一点,我将页脚创建为一个带有position:fixed
, 和的 div bottom:0
。
这适用于我测试过的所有浏览器,包括 iOS5 上的 Safari。
除了有一个错误...
如果用户靠近表单顶部,并将焦点放在其中一个文本字段上 - 正如预期的那样,iOS 会显示键盘。
每次用户单击“下一步”按钮时,iOS 都会将她“标记”到下一个字段。
当她通过反复单击Next向下滚动表单时,iOS 会自动“向上滚动”表单,因此她在表单上的位置仍然可见。
然而,iOS 似乎并没有更新position:fixed
页脚 div 的位置——它与表单的其余部分一起错误地向上滚动。
如果用户关闭键盘,则 div 将恢复到它的“正确”位置,因此这不是不可恢复的错误。但是,页脚完全移动的事实是一个明显的问题。
这是 iOS 实现的错误还是缺点position:fixed
?或者,我做错了什么?
提前谢谢了!
[更新]
Remy Sharp(恰如其名)刚刚写了一篇position:fixed
关于 iOS/Safari 上的各种错误和问题的优秀而详细的帖子:http ://remysharp.com/2012/05/24/issues-with-position-fixed-scrolling -on-ios/。position:fixed
如果您正在考虑在面向 iOS 用户的网站上使用,那么这是必读的……