Мое предложение состоит в том, чтобы плитки располагались абсолютно внутри доски, чтобы сэкономить на HTML (время передачи) и вычисления позиции (время загрузки) браузером. JS регистрирует клики и обрабатывает их (меньше HTML = меньше время передачи и загрузки).
Итак, у вас может быть этот базовый CSS:
#board {
display: block;
width: [BoardWidth]px; /* TileWidth * NumberOrColumns */
height: [BoardHeight]px; /* TileHeight * NumberOfRows */
position: relative;
}
.tile {
display: block;
width: [TileWidth]px;
height: [TileHeight]px;
float: left;
}
Затем генерируем html следующим образом:
<div id="board">
<div class="tile" style="position: absolute; left:0px; top:0px;"></div>
<div class="tile" style="position: absolute; left:20px; top:0px;"></div>
<div class="tile" style="position: absolute; left:40px; top:0px;"></div>
<div class="tile" style="position: absolute; left:60px; top:0px;"></div>
<div class="tile" style="position: absolute; left:0px; top:20px;"></div>
<div class="tile" style="position: absolute; left:20px; top:20px;"></div>
<div class="tile" style="position: absolute; left:40px; top:20px;"></div>
<div class="tile" style="position: absolute; left:60px; top:20px;"></div>
<div class="tile" style="position: absolute; left:0px; top:40px;"></div>
<!--(...)-->
</div>
В которой каждая плитка имеет позицию left: [X*TileWidth]px; top: [Y*TileHeight]px;
.
Это или предложение Дэвида М.
Вы также можете сократить время загрузки страницы, если уменьшите размер страницы, поэтому, как и предполагалось, с использованием JQuery или другой платформы JavaScript для создания триггера для клика по каждому div
будет идеальным .
Я не очень сообразителен, но с использованием JQuery это было бы что-то вроде:
$(document).ready(function() {
$(".tile").click(function() {
// find out which square was clicked, and perhaps redirect to a page with get variables
});
});