nav的a标签display设置为inline-block,为什么有间隙

nav的a标签display设置为inline-block,为什么有间隙

a标签,将display属性设置为“inline-block”,而不设置浮动,不就既可以实现同行显示,又可以设置宽高了吗?可以这样设置吧?

但是,在 nav标签下,这样设置后,a标签间存在很大的间隙,将margin设置为0后,间隙依然没有完全消失,这是什么原因,如何解决?代码如下:

header > .container nav a{

display: inline-block;

width: 80px;

height: 63px;

line-height: 63px;

text-align: center;

font-size: 20px;

margin: 0;

}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这是因为设置为行内块的话,各个元素之间会有间隙。举个例子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .father {
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .one {
            width: 100px;
            height: 100px;
            background-color: pink;
            display: inline-block;
        }
        .two {
            width: 100px;
            height: 100px;
            background-color: gray;
            display: inline-block;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="one"></div>
        <div class="two"></div>
    </div>
</body>
</html>

按照常理来说,两个子元素的宽度和等于父元素的,应该在一行显示的,但是第二个子元素却被撑到了下一行:

http://img1.sycdn.imooc.com//climg/5f50554d09599e4703870275.jpg

这就是行内块之间的间隙,而这些间隙就是由空格和换行导致的:

http://img1.sycdn.imooc.com//climg/5f50557709b7fbde06100216.jpg

但是我们又不能手动将这些间隙去掉,因为去掉以后代码就是一行的,看起来很冗余。所以一般情况下,如果需要精确的计算宽度,是不推荐设置为行内块的,推荐使用浮动来代替,它们是块级元素,不会存在这些间隙。

如果我的回答帮助了你,欢迎采纳。祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师