清除行内元素之间的HTML空白

简介: 原文连接:Remove Whitespace Between Inline-Block Elements 原文日期: 2013年8月27日 翻译日期: 2013年8月28日 至今我还记得年轻是在IE6上开发的那些苦逼日子,特别希望IE浏览器采用 inline-block 的显示方式. 行内块(inline-block)是非常有用的,特别是想要不用'block'和'float'来控制这些行内元素的margin,padding之时。
原文连接: Remove Whitespace Between Inline-Block Elements
原文日期: 2013年8月27日
翻译日期: 2013年8月28日

至今我还记得年轻是在IE6上开发的那些苦逼日子,特别希望IE浏览器采用 inline-block 的显示方式.
行内块(inline-block)是非常有用的,特别是想要不用'block'和'float'来控制这些行内元素的margin,padding之时。
问题来了,HTML源码中行内元素之间的空白有时候显示在屏幕上那是相当的讨厌。
当然,有一些技巧(方法)可以用来清除他们:比如粗暴地完全删除空白,或者其他的方法:

解决方案1: font-size:0;

最好的方法是在外层元素上设置font-size:0;同时在内层元素上指定字体具体的大小。

ul.inline-block-list { /* 比如 ul 或者 ol元素 */
	font-size: 0;
}
ul.inline-block-list li {
	font-size: 14px; /* 设置具体的字体大小 */
}

为了抵消外层元素的字体属性,在内层元素必须指定 font-size 属性,当然这很简单。
假若代码是一种复杂的嵌套关系,那么你可能不好去计算或指定这些字体属性,但在大多数情况下,这就是你想要的效果!

解决方案2: HTML 注释
这种方法比较渣,但是效果也不错。使用HTML的注释标记顶替元素之间的空白:

<ul>
	<li>Item content</li><!--
 --><li>Item content</li><!--
 --><li>Item content</li>
</ul>
一个字来形容: 渣.如果用2个字来形容,那就是"渣渣",用3个字来形容,"解决了"。

解决方案3: 指定margin属性值为负数
和方案2类似,这个也比较渣。可以使用行内元素的margin属性来抵消空白:
ul.inline-block-list li {
	margin-left: -4px;
}
这是最糟糕的解决方案了,因为你必须根据具体情况去计算,有时候还不对。你应该尽量避免这样做。

虽然这些方案都不是很理想,但是如果不这样处理,那你的HTML代码结构可能就非常混乱,成为标准的垃圾代码。
因为行内元素非常好用,所以这并不是一个小心避免的雷区,作为开发人员,学会处理这种空白问题也是很重要的。
目录
相关文章
|
5天前
|
前端开发
html中行内元素、块级元素、行内快元素都有哪些,以及区别
html中行内元素、块级元素、行内快元素都有哪些,以及区别
15 1
html+css实战111-行内元素的垂直外边距
html+css实战111-行内元素的垂直外边距
131 0
|
前端开发
html 空白汉字占位符
前端开发中,大家可能会遇到这样的问题:标题存在字数不一样的情况,但是产品大哥,让你要对齐。还必须对齐。他说他有强迫症
1116 0
|
容器
html元素类型 块级元素、内联元素(又叫行内元素)和内联块级元素。
html中的标签元素大体被分为三种不同的类型:块级元素、内联元素(又叫行内元素)和内联块级元素。 块级元素特点: 1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(霸道,一个块级元素独占一行) 2、元素的高度、宽度、行高以及顶和底边距都可设置。
1021 0
|
PHP
php strp_trags()去除html标签仍有空白解决办法
2013年1月14日 15:39:23 $subject = strip_tags($newsRs['content']);//去除html标签 $pattern = '/\s/';//去除空白 $content = preg_replace($pattern, '', $subject)...
906 0
|
2天前
|
移动开发 HTML5
HTML5/CSS3粒子效果进度条代码
HTML5/CSS3进度条应用。这款进度条插件在播放进度过程中出现粒子效果,就像一些小颗粒从进度条上散落下来
15 0
HTML5/CSS3粒子效果进度条代码
|
6天前
|
移动开发 前端开发 JavaScript
:掌握移动端开发:HTML5 与 CSS3 的高效实践
:掌握移动端开发:HTML5 与 CSS3 的高效实践
22 1