解决HTML中li标签空白间隙问题

  最近开发新主题的过程当中,碰到一个很神奇的问题。li标签中间会有空白间隙。后来查询资料才得知,li标签为块级元素,当其转化为inline-block元素是会出现空白文本节点,在一些浏览器中无法察觉,如Chrome、Edge等。不过你用鼠标选中,还是可以看到的:

空白间隙

  FireFox可以直接看到空隙:
FireFox空白间隙

  原因是由于:浏览器的默认行为是把inline元素间的空白字符,如空格、换行等渲染成一个空格,li标签在换行后产生新的字符,产生一个空格,占用一个字符的宽度。

解决方案

方法一:将li标签全部写在一排

既然是因为换行导致的,那就可以将代码全部写在一排,像这样:

<div class="wrap">
<h3>li标签空白测试</h3>
<ul>
<li class="part1"></li><li class="part2"></li><li class="part3"></li><li class="part4"></li>
</ul>
</div>
HTML

但是这样可读性差、难以维护、逼死强迫症和洁癖。

方法二:将父元素font-size属性设置为0

  空白元素节点的字体设置为0 ,自然不占宽度也就不会产生白边了,但是这样不是所有浏览器都能成功的,如一些低版本的浏览器仍会产生空白缝隙。

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

我比较推荐第二种方法,设置完成后效果如下:

效果

打赏
评论区
头像
  • 高兴
  • 小怒
  • 脸红
  • 内伤
  • 装大款
  • 赞一个
  • 害羞
  • 汗
  • 吐血倒地
  • 深思
  • 不高兴
  • 无语
  • 亲亲
  • 口水
  • 尴尬
  • 中指
  • 想一想
  • 哭泣
  • 便便
  • 献花
  • 皱眉
  • 傻笑
  • 狂汗
  • 吐
  • 喷水
  • 看不见
  • 鼓掌
  • 阴暗
  • 长草
  • 献黄瓜
  • 邪恶
  • 期待
  • 得意
  • 吐舌
  • 喷血
  • 无所谓
  • 观察
  • 暗地观察
  • 肿包
  • 中枪
  • 大囧
  • 呲牙
  • 抠鼻
  • 不说话
  • 咽气
  • 欢呼
  • 锁眉
  • 蜡烛
  • 坐等
  • 击掌
  • 惊喜
  • 喜极而泣
  • 抽烟
  • 不出所料
  • 愤怒
  • 无奈
  • 黑线
  • 投降
  • 看热闹
  • 扇耳光
  • 小眼睛
  • 中刀
  • 呵呵
  • 哈哈
  • 吐舌
  • 太开心
  • 笑眼
  • 花心
  • 小乖
  • 乖
  • 捂嘴笑
  • 滑稽
  • 你懂的
  • 不高兴
  • 怒
  • 汗
  • 黑线
  • 泪
  • 真棒
  • 喷
  • 惊哭
  • 阴险
  • 鄙视
  • 酷
  • 啊
  • 狂汗
  • what
  • 疑问
  • 酸爽
  • 呀咩爹
  • 委屈
  • 惊讶
  • 睡觉
  • 笑尿
  • 挖鼻
  • 吐
  • 犀利
  • 小红脸
  • 懒得理
  • 勉强
  • 爱心
  • 心碎
  • 玫瑰
  • 礼物
  • 彩虹
  • 太阳
  • 星星月亮
  • 钱币
  • 茶杯
  • 蛋糕
  • 大拇指
  • 胜利
  • haha
  • OK
  • 沙发
  • 手纸
  • 香蕉
  • 便便
  • 药丸
  • 红领巾
  • 蜡烛
  • 音乐
  • 灯泡
  • 开心
  • 钱
  • 咦
  • 呼
  • 冷
  • 生气
  • 弱
  • 阿鲁
  • 泡泡
    头像

    还有一种方法,对父元素设置 display: flex 布局就好啦

    头像
    墨铺
      

    会开发的都是大牛,我们只会拿来用

    头像

    原来如此,学习到了。

    头像
    Lovest_
      

    新主题喔?