清除li间隔

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body style="background:#090;">
<style type="text/css">
body{ font-size:12px;}
.test{ list-style:none; margin:0;}
.test li{ background:#000; padding:0;}
</style>
<ul class="test">
	<li><img src="http://avatar.youkuaiyun.com/8/F/9/3_guoerwei.jpg" /></li>
	<li><img src="http://avatar.youkuaiyun.com/8/F/9/3_guoerwei.jpg" /></li>
	<li><img src="http://avatar.youkuaiyun.com/8/F/9/3_guoerwei.jpg" /></li>
	<li><img src="http://avatar.youkuaiyun.com/8/F/9/3_guoerwei.jpg" /></li>
	<li><img src="http://avatar.youkuaiyun.com/8/F/9/3_guoerwei.jpg" /></li>
</ul>
</body>
</html>

 

 

如图:li之间存在几个像素的间隔。

 

解决方案1:大部分人应该都是这么来解决的吧。

图片的尺寸是48*48,于是给li强制定义高度

.test li{ background:#000; padding:0; height:48px;}

结果就是除IE6闹别扭外,其它浏览器都正常地把间隙消除了。

然后就是考虑给IE6单独设置样式

.test li{ background:#000; padding:0; height:48px; _margin-bottom:-3px;}

看起来似乎会是正常了,但实际上,传说中的-3px是有问题的,这边会根据页面的字体大小而变化。

例如

body{ font-size:18px;}

字体大一点的话,-3px就不够用了。

 

解决方案2:

尺寸是48*48,给li强制定义高度后,隐去多余空白

.test li{ background:#000; padding:0; height:48px; overflow:hidden;}

这个看起来是比上面的正常多了,但其实还可以用下面的方法来解决。

 

解决方案3:

给li里的图片,设置一下对齐方式

.test li{ background:#000; padding:0;}
.test li img{ vertical-align:middle;}

这个就正常了……

### CSS 中 `li` 横向排列的间距设置 在 CSS 布局中,当使用 `inline-block` 属性使 `<li>` 元素横向排列时,默认情况下会因为 HTML 文件中的空白符(如换、空格)而导致显示间隙[^1]。这种现象可以通过多种方式解决并自定义间距。 #### 方法一:移除默认间隙 通过调整父级容器的字体大小为零来消除子元素间的空白间隙: ```css #tabControl .tab-header ul { font-size: 0; /* 移除因空白字符产生的间隙 */ } #tabControl .tab-header li { font-size: 16px; /* 还原字体大小到正常水平 */ display: inline-block; margin-right: 10px; /* 自定义间距 */ } ``` 此方法利用了浏览器解析 `inline-block` 的特性,在父容器上将字体大小设为零可以有效隐藏由空白字符引起的间隙。 #### 方法二:负边距法 另一种常见的方式是给每个 `<li>` 添加负外边距以抵消多余的间隙: ```css #tabControl .tab-header li { display: inline-block; margin-left: -4px; /* 调整具体数值至合适状态 */ } ``` 这种方法简单直接,但需要注意可能其他样式冲突或影响布局稳定性。 #### 方法三:Flexbox 实现均匀分布 现代开发推荐采用 Flexbox 来管理更复杂的布局需求。它不仅能够轻松实现无间歇的一多列展示,还能灵活控制项目之间的距离: ```css #tabControl .tab-header ul { display: flex; justify-content: space-between; /* 或者space-around/space-evenly*/ } #tabControl .tab-header li { flex-grow: 1; /* 让每一项占据相同比例的空间 */ margin: 0 5px; /* 可选地增加额外空间 */ } ``` 上述代码片段展示了如何运用 Flexbox 提供的强大功能简化原本繁琐的手动调节过程,同时提供更好的跨设备兼容性和响应能力。 #### 总结 以上三种方案各有优劣,实际应用需依据具体情况选取最合适的策略。如果追求简洁高效且支持最新标准,则优先考虑第三种基于 Flexbox 的解决方案;而对于老旧环境或者特殊场景下则可尝试前两种传统手段解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值