这是一个在网络上讨论很多的问题,但经过数小时的研究和反复试验,我仍然无法在IE 7,8或9中按照下列行为获得HTML:
<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>
所需的行为如下:
提供的HTML可以在Chrome中运行,我相信它可以支持白色空间:nowrap甚至是块元素。我尝试过使用SPAN元素,但是需要强制它们是一个带浮点数的块元素:left或者忽略width属性。然后它们与DIV元素具有相同的问题。
我确信在不使用JavaScript的情况下必须有一个解决方案,但如果所有其他方法都失败,那么这是一个选项。
答案 0 :(得分:2)
我没有在IE中尝试过,但您可以尝试删除white-space: nowrap;
并将其替换为margin-right: -99999px;
答案 1 :(得分:1)
将盒子放在桌子上。这似乎是唯一实用的方法。
当您尝试将.box
元素连续显示时,float: left
的使用会产生自己的影响,设置为white-space
无法阻止,因为它在不同的水平,所以说。但是通过将它们放入表格行,你可以将它们排成一行。
你甚至可以省去这些元素,只需放样表格的样式:
<style>
table.boxes td {
border: 1px solid black;
width: 20px;
height: 20px;
padding: 0;
}
</style>
...
<table class=boxes cellspacing=0><tr><td>...</td><td>...</td>...<td>...</td></tr></table>