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;
}
8
收起
正在回答
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>
按照常理来说,两个子元素的宽度和等于父元素的,应该在一行显示的,但是第二个子元素却被撑到了下一行:
这就是行内块之间的间隙,而这些间隙就是由空格和换行导致的:
但是我们又不能手动将这些间隙去掉,因为去掉以后代码就是一行的,看起来很冗余。所以一般情况下,如果需要精确的计算宽度,是不推荐设置为行内块的,推荐使用浮动来代替,它们是块级元素,不会存在这些间隙。
如果我的回答帮助了你,欢迎采纳。祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星