0
我正在解决的HTML布局问题类似于绘制HTML + CSS和没有任何JS的响应井字游戏板。下面是我如何定义电路板的布局:绘制响应井纯粹的(没有JS)HTML和CSS的井字板
<div class="board">
<div class="lines">
<div class="line">
<div class="cell">
<div class="cell-content"></div>
</div>
<div class="cell">
<div class="cell-content"></div>
</div>
<div class="cell">
<div class="cell-content"></div>
</div>
</div>
<div class="line">
<div class="cell">
<div class="cell-content"></div>
</div>
<div class="cell">
<div class="cell-content"></div>
</div>
<div class="cell">
<div class="cell-content"></div>
</div>
</div>
<div class="line">
<div class="cell">
<div class="cell-content"></div>
</div>
<div class="cell">
<div class="cell-content"></div>
</div>
<div class="cell">
<div class="cell-content"></div>
</div>
</div>
</div>
</div>
,这里是相应的CSS:
.board {
position: relative;
height: 100%;
width: 100%;
border:1px solid black;
box-sizing:border-box;
}
.board:before {
content:"";
display: block;
padding-top: 100%;
}
.lines {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.line {
width: 100%;
}
.cell {
float: left;
width: 33.3333%;
border:1px solid black;
box-sizing:border-box;
}
.cell:before {
content:"";
display: block;
padding-top: 100%;
}
.cell-content {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
在这里,我没有设置任何尺寸除了width: 33.3333%
。板子和领域的高度使用Height equals width with pure CSS方法设置。
而且我会注意到几乎所有东西都很棒。这里唯一的问题是:有时板单元的宽度/高度之和小于板的宽度/高度。这意味着我可以看到最后一个边框和纸板边框之间的差距。我可以用Chrome或FF重现它,但它在IE中绝不会发生。有没有办法来解决这个问题?
演示可从jsfiddle (the red line is what I'm trying to get rid of)
UPDATE:它发生在IE浏览器也,不知道为什么,我以前没见过。
是的,这个固定在Chrome底部的差距,但在FF还有右侧的差距。我应该把'overflow:auto;'放在别的地方吗? – 2014-11-08 23:18:17
那么它不是一个非常聪明的修复,但我发现,如果您将.board元素的宽度从100%更改为100.1%,它将修复您在舍入时得到的差异33.33333 * 3 – Zoheiry 2014-11-08 23:46:01
设置'width:100.1%'使一些魔术和差距在FF和Chrome中消失了这个特定的宽度,但是当我开始调整尺寸时,差距再次出现。 – 2014-11-09 09:01:29