首页 > 关于table里面元素有display:inline-block的一些疑惑

关于table里面元素有display:inline-block的一些疑惑

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body{font-size:14px;}
        .block{width:100%;background-color:red;}
        .a{display: table;width:100%;height:100%;}
        .b{display: table-cell;vertical-align: middle;}
        .c{display:inline-block;background-color:yellow;width:100px;height:8px;}
    </style>
</head>
<body>
    <div class="block">
        <div class="a">
            <div class="b">
                <div class="c"></div>
            </div>
        </div>
    </div>
</body>
</html>

如上代码,有两个问题想请问一下:
1.当.c的height为0的时候,为什么.b会有14的高度?
2.当.c的height不为0的时候,为什么距底边有间隙?


.c{display:inline-block;background-color:yellow;width:100px;height:0;}

是这样啊,c的高度为0时,b的高度为16,没你说的14啊?
谷歌测试


  1. font-size的原因, .c高度为0时, 将.b的font-size也设置成0

  2. inline和inline-block都会有这个问题, 可能的原因是这两个属性, 会将前后的空格,或者解析成字符, 解决方法, 将.b的font-size设置成0, 或者将.c的inline-block属性换成block属性

【热门文章】
【热门文章】