Я создаю своего рода настольную игру в 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;
}
Все работает отлично с первого взгляда. Однако, когда таблица слишком большая, чтобы соответствовать на экране, , тогда все ячейки начинают перенос на следующую строку. Это происходит, например, когда я делаю окно браузера меньше.
Я бы хотел, чтобы ячейки оставались там, где они есть, и перемещаются за пределы веб-браузера. Или, альтернативно, поместите их в контейнер с фиксированным размером, который показывает полосы прокрутки, когда таблица слишком большая.
Я попытался указать постоянную ширину (например, width: 200px
) для окружающего node (т.е. div#board
). Но это работает только в том случае, если ширина больше таблицы (т.е. div.mytable
). (К сожалению, это не так, таблица может иметь разные размеры.)
Что я пробовал:
-
overflow: scroll
не работает. -
white-space: nowrap
не работает. - также использует
table-layout: fixed
, но без видимой разницы. - попробовал
display: table-column
вместоdisplay: table-cell
Что мне не хватает?