4

我正在尝试使用div具有不同background-colors 的 s 制作游戏板,所以我写了一些简单的 css(我只是在这个阶段弄清楚如何做,我div手动编写了 s - 所以我不包括 html/js)

.grass {
    background-color: oliveDrab;
}

.dirt {
    background-color: sandyBrown;
}

div{
    height: 25px;
    width: 25px;
    display: inline-block;
    margin: 0;
}

当我渲染它时,有一个边距。像这样:

追加保证金

所以我检查了萤火虫,它显示marginborderpadding0

风格没有边距

演示小提琴

我被引导觉得我在这里缺少一些非常基本的 CSS 知识。

4

4 回答 4

6

内联和内联块级元素对空白很敏感。

这是您的演示的 jsFiddle 示例,其中删除了第一行中的空格。

jsFiddle 示例

<div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div><div id = "board" class = "grass"></div>
于 2013-09-23T20:35:54.163 回答
4

因为有inline-block元素。

删除标记中的空白,添加负边距,或使用浮动元素而不是display:inline-block.

这是另一个例子:

可能是最好的解决方案。

body {
    width:150px;
}
div {
    float:left;
}

带有负边距的jsFiddle

jsFiddle删除了空格

于 2013-09-23T20:35:41.067 回答
3

由于您不需要将文本设置font-size0. 这样空白就不会干扰。

body {
    font-size: 0px;
}

工作演示

于 2013-09-23T20:42:57.190 回答
1

同意@j08691:内联和内联块级元素对空白很敏感。

但无需调整您的 html 标记:

div {
   height: 25px;
   width: 25px;
   display: block;
   float: left;
}

br { 
   clear: both; 
}

小提琴

于 2013-09-23T20:52:01.053 回答