3

我正在开发的网站不仅使用框架,还使用框架内的框架(嗯,我知道,但我无法选择)。它实际上在大多数情况下都可以正常工作,但我遇到了 Safari 中框架内的某些框架的问题(仅限)。

一些两深的框架在 Safari 中呈现,在框架的右侧有一个小空间 - 我认为它只是滚动设置为“no”的那些,但摆弄滚动设置还没有修复它. 它基本上看起来应该有一个滚动条,但没有。

我一直在研究这个并尝试了很多东西:更改行的高度,更改滚动设置,添加colls='100%'标签,更改框架内容的高度,以及检查以确保宽度是始终设置为 100%。到目前为止还没有解决任何问题。

有谁知道这里发生了什么?

这是代码的基本要点和一些屏幕截图 - 请原谅缺少正确的引号;它仍然在这个代码库中渲染和修复它们将是一场失败的战斗:

<html>
    <frameset id=fset frameborder=0 border=0 framespacing=0 onbeforeunload="onAppClosing()"  onload="onAppInit()" rows="125px,*,0">
        <frame src="navFrame.html" name=ControlPanel marginwidth=0 marginheight=0 frameborder=0 scrolling=no noresize>
        <frame src="contentFrame.html" name=C marginwidth=0 marginheight=0 frameborder=0 scrolling=no>
        <frame src="invisiFrame.html" name=PING marginwidth=0 marginheight=0 frameborder=0 noresize>
        <noframes><body>Tough luck.</center></body></noframes>
    </frameset></html>

在第二个框架(名为“C”,src 为“contentFrame”)内部是这样的:

 <HTML>
    <HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"></head>
    <frameset rows="48px,*,28px" border=0 frameborder=0 framespacing=0>
       <frame src="pageTitle.html" name=Title marginwidth=0 marginheight=0 noresize scrolling=no frameborder=0>
       <frame src="content.html" name=ScreenBody marginwidth=0 marginheight=0 frameborder=0>
       <frame src="submitBar.html" name=ContextPanel marginwidth=0 marginheight=0 frameborder=0 scrolling=no noresize>
    </FRAMESET>
 </HTML>

麻烦的帧是第一帧(名为“Title”,src 为“pageTitle.html”)和最后一帧(名为“ContextPanel”,src 为“submitBar.html”)都将它们的宽度设置为 100% 并且高度为 100%、未设置或小于或等于其行高的值。

这是问题的图像:

显示 Firefox 和 Safari 中的站点的图像,带有标记的部分

4

2 回答 2

2

显示滚动条的标题和提交框架可以有 html 正文标签 scroll="no"

<body scroll="no"> 

因此,无论帧或正常渲染如何,都不会出现滚动条。

于 2008-11-14T22:09:48.330 回答
2

您所看到的是当没有足够的空间来绘制整个滚动条小部件集时,Safari 是如何绘制滚动条的。您应该overflow: hidden在 CSS 中为body您不想滚动的任何框架/页面设置。请注意,Safari 并不完全遵守这些规则(或scroll="no"在元素上),因为如果实际上存在超出可见区域的内容,您可以通过拖动选择其内容来实际滚动元素。

于 2008-11-14T22:33:58.187 回答