博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
消除li横排后空隙
阅读量:6167 次
发布时间:2019-06-21

本文共 893 字,大约阅读时间需要 2 分钟。

浏览器预览后,咦,为啥跟预想的不一样呢?为啥<li>之间会有空白框框呢?

原因分析:

笔者在网上看了一些资料,并没有一个确切的答案,但较为可信的原因是:浏览器的默认行为是把inline元素间的空白字符(空格换行tab)渲染成一个空格,也就是我们上面的代码<li>换行后会产生换行字符,而它会变成一个空格,当然空格就占用一个字符的宽度

解决方案:

知道了原因,就可以寻找解决办法了,

方法一:既然是因为<li>换行导致的,那就可以将<li>代码全部写在一排,如下

li标签空白测试

方法二:我们为了代码美观以及方便修改,很多时候我们不可能将<li>全部写在一排,那怎么办?既然是空格占一个字符的宽度,那我们索性就将<ul>内的字符尺寸直接设为0,将下面样式放入样式表,问题解决。

.wrap ul{
font-size:0px;}

方法三:本来以为方法二能够完全解决问题,但经测试,将li父级标签字符设置为0在Safari浏览器依然出现间隔空白;既然设置字符大小为0不行,那咱就将间隔消除了,将下面代码替换方法二的代码,目前测试完美解决。同样随来而来的问题是li内的字符间隔也被设置了,我们需要将li内的字符间隔设为默认。

.wrap ul{
letter-spacing: -4px;}

之后记得设置li内字符间隔

.wrap ul li{
letter-spacing: normal;}

结束语:

这个空白间隔不仅仅是将<li>设置为display:inline-block;后会出现,其他元素被设置为内联块状元素后都会出现这样的问题,所以此方法并不仅仅适用于<li>标签间的空白,其他的也同样适用。

很好的文章,解决了自己的问题,为加深印象,自己摘抄了一遍。原文:http://www.iyaxi.com/2016-06-30/1019.html

转载于:https://www.cnblogs.com/shaddock/p/7498135.html

你可能感兴趣的文章
使2个div 在一行上显示
查看>>
Supervisor Linux程序进程管理
查看>>
建立信任关系
查看>>
Yii 框架表单默认英文提示改为中文
查看>>
BZOJ-1064: [Noi2008]假面舞会 (综合性图论题)
查看>>
TCP的TIME_WAIT状态
查看>>
Android音乐、视频类APP常用控件:DraggablePanel(1)
查看>>
浏览器控制台(F12-开发者工具)Console用法
查看>>
MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(5)
查看>>
C#提取字符串中的数字字符串
查看>>
python 异常处理
查看>>
Alpha 冲刺 (8/10)
查看>>
PHP正则表达式笔记和实例
查看>>
jQuery中的.live()与die()
查看>>
C++ 中的sort排序用法
查看>>
Vue_声明周期
查看>>
代码复审结果报告
查看>>
【069】Android 中的 Manifest.xml
查看>>
MongoDB C Driver Building on CentOS
查看>>
Git分布式版本控制系统 入门学习
查看>>