这是网络上一个高度讨论的问题,但经过数小时的研究和反复试验,我仍然无法让下面的 HTML 在 IE 7、8 或 9 中按预期运行:
<html>
<head>
<title>Untitled Page</title>
<style>
.container {
white-space: nowrap;
overflow: auto;
position: absolute;
}
.childContainer {
float: left;
}
.box {
float: left;
border: 1px solid black;
width: 20px;
height: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="childContainer">
<div class="box"></div><div class="box"></div><div class="box"></div>
<!-- repeat until off screen -->
<div class="box"></div><div class="box"></div><div class="box"></div>
</div>
<div class="childContainer">
<span>This should not wrap!</span>
</div>
</div>
</body>
</html>
所需的行为如下:
- .box 元素不得换行 - 滚动条应出现在窗口底部
- .box 元素必须具有固定的宽度和高度
- .container 和 .childContainer 不能有固定宽度。.box 元素的数量是任意的
- 必须在 IE7+ 和最新版本的 Chrome 和 FireFox 中合理一致地运行
提供的 HTML 在 Chrome 中有效,我相信它尊重 white-space: nowrap 即使对于块元素。我尝试过使用 SPAN 元素,但需要将它们强制为带有 float: left 的块元素,否则将忽略宽度属性。然后它们具有与 DIV 元素相同的问题。
我确信必须有一个不使用 JavaScript 的解决方案,但如果所有其他方法都失败了,这是一个选项。