【发布时间】:2015-07-12 04:03:53
【问题描述】:
我正在用 javascript 创建一种棋盘游戏。板的图像放在一张桌子里。我曾经使用 html <table> 标签来做到这一点。但是,我确信由于该表实际上并不包含数据,因此我确实应该使用<div> 元素将其可视化。
<div id='board'>
<!-- the table starts here -->
<div class='mytable'>
<!-- table has multiple rows -->
<div class='myrow'>
<!-- a row has multiple cells -->
<div class='mycell'/>
...
</div>
...
</div>
</div>
为了使它们的格式与表格的外观相同,我使用了以下 CSS。
.mytable{
display:table;
width:auto;
border:0px;
border-spacing:0px;
padding: 0px;
border-collapse: collapse;
table-layout:fixed;
}
.myrow{
display:table-row;
width:auto;
height: auto;
clear:both;
}
.mycell{
float:left;/*fix for buggy browsers*/
text-align: center;
display:table-cell;
width:31px;
height:31px;
background: url(background.png) no-repeat;
}
乍一看一切正常。但是,当表格太大而无法在屏幕上显示时,然后整个单元格开始换行到下一行。例如,当我缩小浏览器窗口时会发生这种情况。
我希望发生的是,单元格只是停留在它们所在的位置,并移动到网络浏览器的视图之外。或者将它们放在一个固定大小的容器中,当表格太大时,它会显示滚动条。
我尝试为周围的节点(即div#board)指定一个恒定的宽度(例如width: 200px)。但这仅适用于宽度大于表格的情况(即div.mytable)。 (很遗憾,情况并非如此,表格可以有不同的大小。)
我尝试了什么:
-
overflow: scroll不起作用。 -
white-space: nowrap不起作用。 - 也使用
table-layout: fixed,但没有明显区别。 - 尝试使用
display: table-column而不是display: table-cell
我错过了什么?
【问题讨论】:
标签: css html-table tablelayout css-tables