搜尋

首頁  >  問答  >  主體

css - 关于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>
    <p class="block">
        <p class="a">
            <p class="b">
                <p class="c"></p>
            </p>
        </p>
    </p>
</body>
</html>

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

天蓬老师天蓬老师2782 天前566

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 11:39:32

    1. font-size的原因, .c高度為0時, 將.b的font-size也設定成0

    2. inline和inline-block都會有這個問題, 可能的原因是這兩個屬性, 會將前後的空格,或者解析成字符, 解決方法, 將.b的font-size設置成0,或將.c的inline-block屬性換成block屬性

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 11:39:32

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

    是這樣啊,c的高度為0時,b的高度為16,沒你說的14啊?
    Google測驗

    回覆
    0
  • 取消回覆