Safari Frames Invisible Scrollbar

时间:2008-11-14 21:38:35

标签: html safari scroll frames frameset

我正在开发一个网站,它不仅使用框架,还使用框架内的框架(呃,我知道,但我不能选择)。它实际上大部分时间都可以正常工作,但我遇到了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%,未设置,或者小于或等于行高的值。

以下是问题的图片:

image showing site in Firefox and Safari, with sections labeled

2 个答案:

答案 0 :(得分:2)

显示滚动条的标题和提交框架可以包含h​​tml body标签scroll =“no”

<body scroll="no"> 

所以无论是帧还是普通渲染,都没有滚动条。

答案 1 :(得分:2)

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