Html IE6中的2列全高布局

Html IE6中的2列全高布局,html,css,layout,internet-explorer-6,Html,Css,Layout,Internet Explorer 6,所以我试图在IE6中复制这一点: 它在FF和Chrome中工作得很好,但在IE6中却失败得很惨。有什么建议吗 以下是一整套要求: +-----------------------------+ | NavBar | |-----------------------------| |Menu | Content | | | | | |

所以我试图在IE6中复制这一点:
它在FF和Chrome中工作得很好,但在IE6中却失败得很惨。有什么建议吗

以下是一整套要求:

+-----------------------------+
| NavBar                      |
|-----------------------------|
|Menu | Content               |
|     |                       |
|     |                       |
|     |                       |
|     |                       |
|     |                       |
|     |                       |
+-----------------------------+
  • 导航栏是一个以EM为单位的设定高度(例如2em)
  • 菜单是以EM(比如10em)为单位设置的宽度,填充到页面底部
  • 应该没有全局页面滚动条
  • 菜单必须滚动到位,且不能覆盖导航栏(如溢出:滚动)
  • 内容是一个iFrame,它填充了可用的全部空间
  • 布局必须在调整浏览器大小后仍然有效
我尝试过css,但结果是大量的css,我仍然无法让iframe正确填充空间。
我尝试了表格,但无法使菜单以正确的方式滚动。
我唯一的解决方案是帧,但这并不是我真正想要的路线


解决方案:
所以经过36个小时的抨击,我终于找到了解决办法。我唯一能做到这一点的方法是使用基于表的布局。然而,Firefox中有一个怪癖导致高度:100%的计算方式与其他浏览器不同,因此我还必须添加位置:固定样式。IE6基本上忽略了这一点,它依赖于基于表格的布局


这里可以看到一个最终布局的示例:

很难将维度(尤其是垂直方向)与CSS混合。导航栏的高度为2毫秒,菜单的高度为100%-2毫秒-纯CSS很难达到最后的高度。您可能需要使用JavaScript进行计算


另一种解决方案是使页面的行为类似于设计的普通网页(所有页面都在一块中滚动)。下面是一个可能有用的布局示例:

解决方案很简单。使用绝对定位

body {
    margin: 0;
    padding: 0;
    overflow: hidden;
}

#NavBar {
}


#Menu, #Content {
    position: absolute;
    top: 3em;
    bottom: 0;
    overflow: auto;
}

#Menu {
    width: 10em;
}

#Content {
    overflow: hidden;
    left: 10em;           /* #menu.width */
    right: 0;
}

iframe {
    position: absolute;
    bottom: 0;
    width: 100%;
    height: 100%;
}
要使IE正常工作,请确保设置了文档类型。例如,在HTML文件的顶部插入以下内容:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">


出于各种原因,我不能这么做,尽管我很想这么做。这组要求是固定的。@alumb,再更新一次(正文溢出)。我认为问题是由iframe的边界引起的。@strager,我不认为我看到了你看到的。我看到这个:。单词“bottom”应该在页面底部。我还更新了strager.html文件。谢谢你的帮助。@alumb,Grr,我没有像我应该的那样在IE中测试。更新的答案。@strager,好的,现在我遇到了一些奇怪的问题,在IE6中,如果iframe的位置设置为绝对,它将完全消失。@strager,这是一个布局问题。我必须设置内容和正文的高度和宽度。但是,iframe的100%高度仍然与主体相对,而不是容器,因此会溢出页面。