Ваш код выглядит нормально, похоже, что CSS все портит.
Проблема в том, что элементы div 'gameCellLarge' не соответствуют фазе элементов div 'gameCellMedium' и 'gameCellSmall', которые они включают. Это потому, что у них есть «позиция: относительная; Атрибут стиля, который позволяет им бродить там, где они должны быть. (Вы можете визуально увидеть, что происходит, используя отладчик, который поставляется с большинством браузеров, например Firebug с Firefox или Инструменты разработчика с Chrome.)
Кликабельна только та часть поля gameCellSmall, которая перекрывается с включенным в нее блоком gameCellLarge. Вы обнаружите, что во всех полях есть активная область, но эта область сжимается по мере того, как вы добираетесь до нижней части таблицы. Это связано с тем, что большие клетки все больше смещаются по фазе с маленькими клетками, когда вы спускаетесь по столу. Но если вы нажмете на верхнюю часть окна, это сработает, хотя, если вы этого не поймете, ответ будет случайным и случайным.
В любом случае, вы можете решить эту проблему, удалив «position :lative» из стиля .gameCellLarge. Похоже, что это не имеет значения для макета, поэтому все должно быть в порядке. Вы также можете указать 'border: 1px solid black;' в стиле .gameCellLarge.
Надеюсь, это поможет.