解释:
font-size: 0 不是指字体大小是0px
一句话总结作用:
消除内联元素间的间隔(空格)。
问题根因:
代码自动格式化的时候,往往会设置一些适当的缩进、换行,display为inline和inline-block的时候(内联元素),当你代码换行后,就会在网页上产生一个空格,导致前端页面展示变形,避免方法可以不换行,显然这种方法会极大降低代码可读性,所以一般都是将父元素的font-size设为0。
<div class="box"> <div style="background: skyblue;">1</div> <div style="background: rgb(235, 203, 135);">2</div> <div style="background: rgb(173, 135, 235);">3</div> </div> <style> .box{ width: 120px; height: 40px; border: 1px solid red; /* font-size: 0; */ } .box div{ display: inline-block; font-size: 16px; width: 40px; height: 40px; } </style>
复制
父元素设置font-size: 0前后对比图:
解决行内元素空隙其他方法(不推荐):
由display:inline-block元素之间空隙的解决办法不止设置父级font-size为0这一种,还可以设置父元素display:table,或者设置子元素margin为负值、设置float等,
但后面几种方法弊端明显:
- table布局影响性能;
- margin为负值难以调试易出现奇奇怪怪的不符合预期的显示;
- 设置float会让元素脱离文档流;
所以设置父级font-size为0是比较不错的选择。