至今我还记得年轻是在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; /* 设置具体的字体大小 */  
}  
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>  
<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;  
}  
ul.inline-block-list li {
margin-left: -4px;
}
这是最糟糕的解决方案了,因为你必须根据具体情况去计算,有时候还不对。你应该尽量避免这样做。
虽然这些方案都不是很理想,但是如果不这样处理,那你的HTML代码结构可能就非常混乱,成为标准的垃圾代码。
因为行内元素非常好用,所以这并不是一个小心避免的雷区,作为开发人员,学会处理这种空白问题也是很重要的。

CSS清除行内元素之间的HTML空白相关推荐

  1. html清除内部所有补白,如何清除行内元素之间的HTML空白

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 相信大家应该都遇到过下面这个问题:"HTML源码中行内元素之间的空白显示在了屏幕上".可能大家 ...

  2. 行内元素多出的空白文本节点的解决方法

    问题1:会造成img底部有空白的问题 行内元素的vertical-align(该属性适用于行内元素和table-cell元素)默认是baseline 解决: 1: 设置vertical-align:t ...

  3. css 设置行内元素顶部对齐

    display: inline-block;vertical-align: top;

  4. 【原】行内元素产生水平空隙是bug吗

    重构工程师们在设计代码时,有喜欢手动删除行内元素之间产生的额外空隙,并通过设置margin或padding来获取想要间距吗?如代码: <div class="">< ...

  5. 块元素、行内元素、行内块元素

    一.块元素 block element 块元素的特性 独霸一行,总是在新行上开始 宽度缺省是它父级元素的100%,除非设定一个宽度 高度.行高.外边距.内边距都可以设置 可以容纳其他内联元素或者其他块 ...

  6. css:块元素、行内元素、行内块元素以及三种元素之间的转换

    一.三种元素的介绍 1.块元素 块元素的特点 独占一行,也就是会自动换行 可以设置高度.宽度.外边距.内边距 宽度默认是父元素的宽度 常见块元素 <h1></h1>---< ...

  7. CSS 块元素,行内元素,行内块元素及元素之间转换

    元素的显示模式 元素一般分为块级元素和行内元素 元素种类 排列 设置样式 默认 包含 块元素 独占一行 可以设置宽高 容器的100% 可以包含任何标签 行内元素 一行可以放多个行内样式 不可直接设置宽 ...

  8. 文档流及其特性 块级元素与行内元素的区别 浮动的清除方法(解决浮动塌陷)

    标准文档流 web页面的制作,是一个"流",必须从上到下,像是"织毛衣". 标准文档流的特性 1.空白折叠现象 无论有多少个空格,换行,tab,都会折叠成一个空 ...

  9. CSS块级元素和行内元素

    1. 宽高 width:数值; height:数值; 也可用百分比! 长高的设置不会被后代继承 2. 背景 (1)背景颜色 background-color:颜色值; 元素的背景颜色默认为transp ...

最新文章

  1. 做了几道Linux笔试题1
  2. leetcode-169.求众数
  3. 《移动应用开发》实验报告——Vue
  4. 如何访问 SAP Screen Personas 培训系统以及完成一个最简单的例子
  5. 有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
  6. async-validator 表单验证两种数据的解决方案
  7. 串口数据字节位的理解
  8. pythonsplit函数_Python split()函数如何工作
  9. 怎样用shell计算linux内存,计算Linux内存,CUP,硬盘使用率的shell脚本
  10. LeetCode刷题(41)--Sort Color
  11. 11.20,winfrom,增加,查询,删除,修改
  12. linux pagecache与内存占用
  13. 如何提升代码的安全性 —— 代码防御性编程的十条技巧
  14. xcode打包导出ipa
  15. 百度云 图片搜索(JavaAipImageSearch)
  16. 新版Edge浏览器如何设置崩溃自动恢复网页
  17. C++第四章4.7综合实例----个人银行账户管理程序
  18. 网页打印怎样去掉网址
  19. Tire Defect Detection Using Fully Convolutional Network-论文阅读笔记
  20. 申请圣文森特牌照申请流程

热门文章

  1. 阴阳师服务器维护稍后,《阴阳师》手游3月20日维护更新公告
  2. centos安装llvm_Linux CentOS上编译并安装Clang教程
  3. .sh文件是什么语言_FastDFS分布式文件系统的搭建安装
  4. NOIP模拟测试19「count·dinner·chess」
  5. [小米OJ] 4. 最长连续数列
  6. 史上最简单的SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)(Finchley版本)
  7. UITextField实现左侧空出一定的边距
  8. Netty writeAndFlush() 流程与异步
  9. Gentoo使用sudo
  10. 学用状态机模式,写的报销流程,请指教