iPhone 4 Safari 上出现奇怪的水平空白

2024-01-09

在多个设备上测试我的网站的移动版本时,我注意到一个非常奇怪的行为。

我有一个可滚动内容 divoverflow: auto,并且这在所有测试的设备上都能正常工作,除了 Safari 上的 iPhone 4。其他浏览器和设备可以正确显示它,甚至 iPhone 5 Safari。

在 iPhone 4 Safari 上,当您滚动到内容末尾时,底部会出现大量额外的空白(看起来像是 100-200% 的额外高度),并且滚动时文本会消失。在 Safari 中的任何其他设备上都不会发生这种情况,在 iPhone 4 上的其他浏览器中也不会发生这种情况。

以前有人听说过这样的现象吗?我完全不知道是什么原因导致这种行为或如何解决它。

由于我只能访问有限数量的设备进行测试,因此我可能会忽略也发生此问题的其他设备/浏览器。如果您有移动设备并且也想测试它,实时站点在这里:现场直播 http://www.csleisure.com。在移动主页上,单击其中一个徽标以展开内容,然后尝试向下滚动。请在评论中发布您的结果。

  • 向下滚动时在 iPhone 5 Safari 上的显示效果(没问题):Image http://imageshack.us/a/img208/669/33gd.png
  • 向下滚动时在 iPhone 4 Safari 上的显示效果(问题):Image http://imageshack.us/a/img542/1792/0lxe.png

我斗胆猜测您在 Mobile Safari 中暴露了布局怪癖,因为您隐藏/显示每个内容的方式.company元素。每次您更改display元素的属性,浏览器必须执行回流。对于低功耗移动设备来说,回流焊(也称为布局)的费用高得令人望而却步。这可能可以解释为什么您只在 iPhone 4 上看到该问题。

我自己在 iPhone 4 和 iPhone 3GS 上进行了测试,两者都运行 iOS 6.1.3,只有当我展开顶部或底部时,我才能重现该问题.company元素,但不是中间元素。或许这是因为中间.company元素包含的子元素较少,这意味着需要较少的布局计算。

而不是申请display: block; and display: none;给里面的每一个孩子.company元素,我强烈建议您简化 JavaScript,以切换单个容器元素上的显示属性。通过这样做,您可以强制浏览器仅执行一次回流计算,而不是针对您单独更改显示属性的每个元素。

P.S.:iPhone 上的“其他”浏览器(即 Chrome 和 Opera)使用 UIWebviews。 UIWebviews 使用 Nitro Javascript 引擎的修改版本(Safari 版本启用了 JIT 编译)。这种细微的差异可能可以解释为什么该问题只能在 Safari 中重现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone 4 Safari 上出现奇怪的水平空白 的相关文章

  • 将图像保存在相机胶卷中并获取资源 URL

    对于我正在开发的应用程序 我使用 UIImagePickerController 拍摄照片并将其存储在相机胶卷中 void imagePickerController UIImagePickerController picker didFi
  • CALayer边框奇怪问题

    我正在向 CALayer 添加边框 但有一些奇怪的行为 在我应用的边框之后出现模糊边框 参见屏幕截图 这是我的代码 void configureLabel self hidden YES self textAlignment NSTextA
  • 使用 CSS 的平行四边形导航背景

    我正在尝试创建此导航菜单 绿色突出显示是活动页面 灰色是悬停状态 我可以使用以下 CSS 制作平行四边形 ul nav li a text decoration none padding 4px 10px border radius 3px
  • Swift,以编程方式更改 UICollectionViewCell 和 UILabel(单元格内)的宽度

    我已将单元格 UICollectionViewCell 的宽度设置为等于 UICollectionView 的宽度 并且我尝试对该单元格中包含的 UILabel 执行完全相同的操作 我认为下面的代码准确地解释了我想要实现的目标 所以我在这里
  • 如何让UITextView背景线与文字对齐?

    我正在尝试绘制 UITextView 的背景线 这是我用来画这些线的代码 CGContextBeginPath context CGContextSetStrokeColorWithColor context self horizontal
  • 在 iPhone 3GS 与 iPhone 4 上为 Mobile Safari 嵌入 HTML5 视频

    我在服务器上的 mp4 文件中有 H 264 AAC 编码的视频 mime 类型的视频 mp4 添加到 Web 服务器 IIS 7 并且我有一个带有视频标签的页面
  • 从命令行添加 Xcode 开发者帐户

    我正在尝试使用xcodebuild allowProvisioningUpdates在我只能通过命令行访问的计算机 Azure Devops macOS 托管计算机 上 不幸的是 根据man xcodebuild为了使用 allowProv
  • AVAssetExportSession 无法导出从 iCloud 下载的视频

    我正在尝试创建从用户相册中选择的视频的缩小版本 输出的最大尺寸为 720p 因此 在检索视频时 我使用 mediumQualityFormat as the deliveryMode 如果用户设备中不存在原始视频或其中等质量版本 这会导致
  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • 如何设置菜单按钮和菜单项的样式

    我尝试更改菜单按钮中的样式 我可以更改菜单按钮样式 但不能更改其菜单项 无论我尝试什么 菜单按钮内的菜单项都保持不变 menu button fx background color black menu button label fx ba
  • UIView animateWithDuration:delay: 工作很奇怪

    我在使用 iPhone 动画块时遇到了一个奇怪的问题 这段代码 UIView animateWithDuration 2 delay 0 options 0 animations void controller setBackgroundC
  • 如何在 UIScrollView 中启用缩放

    如何启用缩放功能UIScrollView 答案是here https developer apple com documentation uikit uiscrollview 滚动视图还可以处理内容的缩放和平移 当用户做出捏合或张开手势时
  • 编码时捕获 NS_AVAILABLE_IOS

    我知道如何更改支持的最低操作系统IPHONEOS DEPLOYMENT TARGET 我目前正在 Xcode 4 5 下进行开发并使用 iOS 6 0 SDK 我想做的是找到一种方法 每当我使用标记的代码时在编译中抛出警告 NS AVAIL
  • Objective-C 中发送给对象的消息可以被监听或者打印出来吗? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 中拦截方法调用 https stackoverflow com questions 1618474 intercept method call in objective c 如
  • 如何解决 Xcode 5 中的红色(已移动)文件?

    在 Xcode 4 中 当您要移动文件时 可以通过单击右侧菜单中的按钮并通过 Finder 选择新位置来解析文件的新位置 在 Xcode 5 中 右侧菜单中没有按钮 我还没有找到任何方法通过右键单击文件或顶部菜单栏选项来指定文件的新位置 在
  • 从应用程序启动 iPhone 设置屏幕?

    我正在开发一个应用程序 我希望按下按钮时 iPhone 设置屏幕应该打开 苹果有访问限制吗 到底能不能 如果能的话怎么办 不 你不能那样做 但是 作为替代方案 您可以使用这个框架 http www inappsettingskit com
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • 如何在 AWS Route 53 中将流量从非 www 域名重定向到 www.example.com

    我在 AWS Route 53 中拥有一个域名 www derbyware com 我有一个 Web 应用程序运行在 http node147934 env 7029269 phx enscaled us http node147934 e
  • 如何运行独立的 Eclipse MAT?

    我使用 jmap 生成了 hprof sudo jdk bin jmap F dump file app hprof 5003 现在 我在 eclipse 中解析 hprof 时遇到 OOM Java Heap Space 错误 我想我需要
  • GLEW 链接问题找不到 __imp_glGetIntegerv

    注意 是的 我已经指定了 GLEW STATIC 因此 在尝试设置glew以在新项目中使用之前 我已经经历过这个牛仔竞技表演 但现在我在项目中使用glew 2 0 它产生了链接错误 我刚刚在 Linux 实例中生成了源代码并像这样使用它们
  • Celery + Redis - .get() 平稳运行约 70 小时后无限期挂起

    几天内一切都运行良好 但后来我无限期地挂在 get 上 发生无限期挂起所需的时间各不相同 但都在运行 24 到 72 小时之间 我怀疑这与Redis代理有关 的输出CLIENT LIST in redis cli显示大量连接且空闲数非常高
  • fullcalendar js 中未显示的事件

    请任何人帮我找出代码中出了什么问题 我使用 fullcalendar js 来处理日历事件 我想在日历中显示事件 下面是我的代码 document ready function window resize function calendar
  • 使用采样数据时CRC32函数如何工作?

    我想问你关于Python中以下短函数的解释 from zlib import crc32 def test set check identifier test ratio return crc32 np int64 identifier 0
  • Getline错误MFC vs2012(msvcp110.dll)

    我在使用 vs2012 中的 std getline 函数与 MFC 应用程序时遇到问题 同样的代码在vs2010中运行 这就是为什么我确信这不是代码本身的问题 void AddImage OnClickedIdbAiRegistratio
  • 具有自动完成功能的自定义交互式 Shell

    我的任务是创建一个嵌入到 python 中的交互式 shell 这样 当从命令行调用时 它将被放入该 shell 中 谁能给我推荐一个可以做到这一点的图书馆 我需要能够创建自定义单词 操作 以便当用户键入这些单词时 我的程序可以执行我创建的
  • 在 .js 文件中执行 PHP 代码

    我试图在 js 文件中执行一些 PHP 代码 但显然不知道如何正确执行 基本上 代码是向我的页面添加一些 HTML 标签 我将其用于滑出式联系表单 然而 联系表单本身是在 Wordpress 中通过短代码完成的 因此 我试图让短代码在使表单
  • 指定内容的构建操作 - Nuget

    告诉 Nuget 包将所有 css 文件添加为嵌入式资源 即构建操作是嵌入式资源 的最简单方法是什么 我试图通过工具文件夹中的 install ps1 来完成此操作 但仍然无法到达任何地方 注意 我正在从目录结构 tools content
  • switch case 编程练习

    enum SQLErrorCode OK 0 PARTIAL OK 1 SOMEWHAT OK 2 NOT OK 3 Code 1 int error getErrorCode if error SQLErrorCode PARTIAL O
  • 我可以通过 ssh 连接到 Windows,启动命令并让它在我注销时运行吗?

    现在 Windows 10 包含了 openSSH 服务器 是否有某种方法可以启动程序并让它在我注销时运行 在 Linux 上 有 screen 和 tmux 但是 Windows 上呢 Notes 能够重新附加到进程会很好 但这不是必需的
  • 当 list-marker 是伪元素时,list-style-position 不起作用。为什么?

    我想创建彩色列表标记 ul 我做到了 但现在在所有列表中list style position属性不起作用 这是代码 ul FirmStyle list style type none ul FirmStyle li before colo
  • asp.net正则表达式验证器客户端脚本错误

    我有以下正则表达式验证器来检测输入字符串是否包含 HTML 脚本标记 如果是则导致验证错误
  • Nodejs从哪里开始?

    我已经安装了nodejs并运行了几个简单的示例 例如在端口上打开服务器并侦听该端口 但是 我仍然无法将nodejs与web开发联系起来 所以为了学习和实现nodejs 我正在考虑使用rails和nodejs制作井字游戏 这可能吗 我正在设想
  • jQuery 可拖动自定义对齐网格

    我在项目中使用 jQuery UI Draggable 我有一个复选框可以切换可拖动对象上的网格 10x10 网格 选项 但是 当网格重新打开时 网格关闭时移动的对象不会与网格关闭时未移动的对象对齐 简而言之 这些对象位于不对齐的单独网格上
  • 自定义错误页面 .Net Core Web 应用程序未显示 500 错误

    我在生产中创建了一个自定义错误页面 它将要求用户更正 HTTP 状态代码页面 而不是显示丑陋的开发人员错误页面 我现在的代码如下 启动 cs public void Configure IApplicationBuilder app IHo
  • Bookshelf.js - 如何保存多对多关系?

    我在以 多对多 关系保存数据时遇到问题 这是我的模型 var CoursePeople bookshelf Model extend tableName course people var Course bookshelf Model ex
  • python subprocess - 分离进程

    我有一个 python 脚本af audit run py 它调用另一个Python脚本request audit py通过subprocess 第二个脚本request audit py在后台调用另一个子进程并返回请求 ID 问题出在第一
  • iPhone 4 Safari 上出现奇怪的水平空白

    在多个设备上测试我的网站的移动版本时 我注意到一个非常奇怪的行为 我有一个可滚动内容 divoverflow auto 并且这在所有测试的设备上都能正常工作 除了 Safari 上的 iPhone 4 其他浏览器和设备可以正确显示它 甚至