愚蠢的IE6调整行为 - 希望它与某人敲响了一些钟声

时间:2010-03-23 17:02:27

标签: internet-explorer-6

我对jQuery.tabs没有乐趣(原文如此)。这个小部件非常狡猾,因为它变成了基本的HTML,如此

<div>
    <ul>
        <li>Tab #1</li>
        ...
    </ul>
    <div for panel #1>
    </div>
    <div for panel #2>
    </div>
    ...
</div>
进入一个可爱的标签对话。 (它通过重新设置UL然后切换面板DIV的“display”属性来显示/不显示所选的任何面板。) 现在我发现如果我在每个面板中插入一个可滚动的IFRAME,我可以在我的JS项目中省去很多麻烦。

我试图改进的一个可用性问题是,当选项卡式面板变得比浏览器窗口大时,用户最终会得到太多滚动条。我试图通过将选项卡式面板的大小链接到$(窗口)的大小来避免这种情况。也就是说,我在$(window)上捕获并处理resize事件。

为了让我的生活变得可以忍受,所有组件都相对较大。特别是IFRAME(100%宽度,100%高度)也是如此。唯一的例外是面板DIV,它们具有固定的高度(以px为单位)。这是我在调整大小操作期间操作的唯一维度css属性。

所有这些都适用于FF和Chrome,但IE6正在做一些相当可爱的事情:只要我不影响浏览器窗口的宽度(但只改变它的高度),只有面板DIV的高度变化;包含的IFRAME不会改变。由于此行为,无法将标签面板缩短到IFRAME的高度以下。我可以延长DIV,是的。但在这种情况下,IFRAME不会填补专家组。

当我对浏览器窗口的宽度做出最轻微的改变时,一切都变好了。在那一刻,IFRAME扩展以同时追赶延长的DIV或DIV和IFRAME合同。

怪异。我插入了无用的CSS指令,如“position:relative”和“zoom:1”。同时用“display:block”轻推显示。到目前为止没有喜悦。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

没关系。刚才有一个灵感:jQuery.tabs并不介意我是否完全使用面板IFRAME。也就是说,我可以取消包装DIV,因此不需要依赖IE6来保证包装的IFRAME的自动相对尺寸(高度= 100%,宽度= 100%)。 IFRAME现在固定为高度px,并由我的resizeHandler直接调整大小。 4个浏览器的生活现在很好。 Yipee!