iOS Safari 扩展框架集大于视口

Posted

技术标签:

【中文标题】iOS Safari 扩展框架集大于视口【英文标题】:iOS Safari expands frameset larger than viewport 【发布时间】:2011-01-20 18:12:08 【问题描述】:

我正在处理一个包含水平拆分框架集的网页;左侧的侧边栏用于菜单和内容区域。

<!DOCTYPE html>
<html>
<head>
    <title>Frameset Test</title>
</head>

<frameset border="0" cols="100,*">
    <frame id="SideMenu" name="SideMenu" src="SideMenu.html" scrolling="no" />
    <frame id="MainPage" name="MainPage" src="LongPageContent.html" scrolling="auto" />
</frameset>
</html>

在桌面浏览器(包括 Safari)中,框架集设置为视口大小,并且在 MainPage 框架中为长页面内容显示滚动条。在 ios 上的 Safari 中,框架集扩展为与 MainPage 框架中的内容相同的大小,超出了可见视口。

我想要前一种行为,以便页面大小保持与视口相同,而不管 MainPage 中的内容如何。我已经摆弄了视口元标记,但调整视口不会修改框架集的行为。

我知道 Apple 的 iOS 指南建议避免使用框架集,因为滚动更加混乱(需要在框架中用两指滚动),但放弃框架并不是一个好选择。

【问题讨论】:

【参考方案1】:

Safari Web 内容指南指出这是正常行为。框架将展开,包含您的内容,您将无法滚动。

我很抱歉,但你将不得不放弃框架。

您可以将侧导航编码到每个页面中(这很糟糕),或者在 php 中将一些东西放在一起,将 SideMenu 的内容动态加载到列中。

【讨论】:

【参考方案2】:

AFAIK、&lt;frame&gt;&lt;iframe&gt; 两指滚动行为已被放弃。从 iOS 4.X 开始,这些元素现在正在调整大小以适应其内容的大小。

由于position:fixed; 在 iOS 上也不起作用,因此您不能阻止 SideMenu 框架让其余部分滚动。

这个库似乎提供了一个有趣的解决方法:http://cubiq.org/iscroll

【讨论】:

我刚刚发现了这个问题,解决了同样的问题。***.com/questions/4599153/…

以上是关于iOS Safari 扩展框架集大于视口的主要内容,如果未能解决你的问题,请参考以下文章

DZNEmptyDataSet——空白数据集显示框架

是否有显示视口大小的 Safari 的免费扩展

未找到框架“.NETFramework,Version=v4.7.1”的参考程序集

SpringBoot 集成FluentMyBatis 框架之集成分页功能

Vuetify 数据表在 Safari 中呈现问题

一款集代码生成器+权限管理+工作流+报表工具+APP小程序于一体的敏捷开发框架