0

看看这个 JSFiddle:http: //jsfiddle.net/nMbb4/1/

HTML:

<table>
    <tr>
        <td>
            1
        </td>
    </tr>
    <tr>
        <td>
            <div></div>
        </td>
    </tr>
</table>

CSS:

table, tr, td
{
    padding:0px;
    margin:0px;
    border:solid 1px black;
    font-size:10px;
}
table
{
    border-collapse:collapse;
}

td
{
    width:15px;
}

div
{
    width:15px;
    height:15px;
    display:inline-block;
    background-color:orange;
}

为什么表格单元格底部有白色边距/填充?我怎样才能摆脱它?这里的目标是让 div 的橙色背景色填充整个表格单元格。

4

4 回答 4

3

这是因为display:inline-block在 div 周围留有空白,您应该摆脱该属性,display从中删除属性div将设置您想要的输出。

小提琴演示

虽然inline-block仍然非常有用,但重要的是开发人员知道如何处理使用它所带来的空间。

旁注:当项目显示为inline-block标记中的任何回车符或制表符时,将被识别为空白字符。在这种情况下,您可以通过编写标记来解决此问题,并且项目之间没有空格:

于 2013-12-30T16:08:07.017 回答
3

要离开那个空间,你可以改变vertical-align<div>的默认是基线`

div {
 display:inline-block;
 vertical-align:top; /*or middle or bottom*/
}

演示http://jsfiddle.net/nMbb4/6/

于 2013-12-30T16:20:40.187 回答
1

删除display-inlinediv 的样式

小提琴

于 2013-12-30T16:07:50.923 回答
0

虽然这不是您遇到的问题,但这里有一个类似问题的解决方案:

当您设置td > div {height: 100%; min-height: 240px}. Instead you must settd > div {height: 240px}`时,您还会在 IE11 的表格单元格底部看到白色间隙

于 2018-04-03T13:40:46.560 回答