什么是inline-blocks之间的冗余间隙考虑如下代码:
nava{display:inline-block;//或内联;填充:5px;background:red;}我们会得到如下结果:嗯?我们明明没有设置margin-right,为什么a标签之间会有空隙呢?答:产生的gap来自html代码中labels之间的gap,gap会根据父容器的fontsize变化(上面示例代码中,nav的font-size越大,gap越大)).如何消除这些多余的间隙?在弄清了这些差距的原因之后,消除这些差距就变得容易多了。通常有以下几种集中消除这些空隙的方法:1.消除html代码中的空隙:将代码写在一行中:或者填写注释:可以消除这些多余的间隙。优点:不需要css处理,从根本上解决了问题缺点:代码可读性降低,项目中这样写估计会被吊打。2.使用负边距来抵消多余的间隙nava{display:inline-block;填充:5px;背景:红色;右边距:-4px;//添加这一行}优点:简单缺点:由于多余间隙的大小会受到父容器font-size的影响,所以margin-right的值要根据情况设置,即不容易控制。3.父容器设置font-size:0;内部子元素单独设置字体大小,即:nav{font-size:0;//添加这一行}nava{display:inline-block;填充:5px;背景:红色;字体大小:14px; //添加这一行}优点:相对于设置负margin-right大小的不确定性,设置font-size:0;更可控。缺点:由于font-size的可继承性,其子元素都继承font-size:0;它只能被覆盖。如果项目中的字体大小设置使用的是em而不是px,那么子元素的字体大小是不能通过em来设置的(不管有多少个em都是0)。4.父容器设置显示:flex;优点:弹性布局可以去掉多余的空隙,可以轻松实现垂直居中、水平居中等效果。缺点:版本很低的浏览器不支持该属性。