inline和inline-block的间隙问题
我们在前端布局的时候,会偶尔发现,在具有inline/inline-block属性的元素间存在一小段间隙,网上有些文章说这个间隙是6px,但我觉得应该是一个空格的宽度。
这里以inline-block(IE6、IE7不支持,也就是存在兼容问题)为例:
下面是一些代码及其相应的效果图:
CSS:
span{
        background:red;
        display:inline-block;
}
HTML:
<span>你好</span><span>你好</span><span>你好</span><span>你好</span>
效果图:
如果只更改HTML部分为
<span>你好</span><span>你好</span>
<span>你好</span><span>你好</span>
则效果图:

可以看到中间多出了一个小间隙,这个间隙就是由换行产生的。
如果同时又更改CSS部分,设置font-size为一个比较大的值
*{
    font-size:36px;
}
span{
        background:red;
        display:inline-block;
}
我们有下图

可以看到间隙变大了。
如果我们把HTML部分换行替换成空格,可以得到上图一样的效果

由此可见,inline/inline-block之间的间隙确实由换行符产生,其大小为一个空格宽度(这里要说明一下,这个空格宽度是指相应父元素的空格宽度)。
附加:inline-block兼容问题
要解决inline-block的兼容问题,首先要了解兼容问题产生的原因。
1、IE6、IE7不识别inline-block但可以触发块元素。
2、其他主流浏览器都支持inline-block。
解决方法:
1、兼容IE6、IE7:首先设置inline-block触发块元素,使其具有layout属性,其次设置inline,此时layout属性不会消失。或者设置inline,然后再设置zoom:1触发layout。
2、兼容所有主流浏览器:
display:inline-block;
*display:inline;
*zoom:1;
inline和inline-block的间隙问题的更多相关文章
- display:block、display:inline与displayinline:block的概念和区别
		总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ... 
- 当inline元素包裹block元素时会发生什么
		经常有图片链接写法如下: <a href="www.baidu.com"><img src="baidu.jpg" /></a&g ... 
- display:inline 跟  display:block 跟 display:inline-block区别
		我来说句人话吧.display:inline; 内联元素,简单来说就是在同一行显示.display:block; 块级元素,简单来说就是就是有换行,会换到第二行.display:inline-bloc ... 
- 多个inline元素、block元素、inline-block元素在父容器中的换行情况
		1.首先看inine元素的换行情况 <style> *{padding:0;margin:0} div.wrap{width:200px;height:200px;border:1px s ... 
- inline元素、block元素、inline-block元素
		inline 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行,直到该行排满. block 块级元素:是可以控制宽和高.margin等,并且会换行.块级对象元素会单独占一行显示, ... 
- display:inline与display:block——行内元素显示与块级元素显示
		display:inline 的作用是设置对象做为行内元素显示,inline是内联对象的默认值(ps:内联对象就是不自动产生换行的元素,比如span) 而我们一般用的div是块级元素,默认displa ... 
- block与inline,inline和inline-block,块级和行内元素,行内替换和行内非替换元素
		block:块级元素默认display属性为block:无论块内内容有多少,总是占满一行: inline:行内元素默认display属性为inline:只占据块内的内容的大小,不会占满一整行: inl ... 
- inline元素、block元素
		inline元素 不会独占一行,相邻的行内元素会排列在同一行内,直到一行排不下才会换行 高.行高.以及外边距和内边距不可改变 宽度就是它的文字或图片的宽度,不可改变,随元素内容变化而变化 内联元素只能 ... 
- font-size:0的妙用,用于解决inline或者inline-block造成的间隙
		1.图片间的缝隙(图片间的间隙一般是由换行.缩进造成的) <div> <img src="1.jpg"> <img src="2.jpg&q ... 
- static inline和inline的区别——stm32实测
		参考:http://armbbs.cn/forum.php?mod=viewthread&tid=95190&extra=page%3D1 对于内联函数,不能像普通函数那样,直接在.h ... 
随机推荐
- redux学习与使用
			Redux: 主要概念Action,reducer,store,state 原理:dispatch ({ type:action, preload: { val } } ) --->reduce ... 
- WCF揭秘学习笔记(4):可信赖会话、会话管理、队列、事务
			可信赖会话 WCF的可信赖会话在绑定层保证消息只会被传输一次,并且保证消息间的顺序.当使用TCP通信时,协议本身保证了可靠性,但它只在两点间的网络 包这个层面提供了这样的保证.WCF的可信赖会话特性保 ... 
- 在react-native中使用es7语法中的decorator装饰器
			在react-native中默认使用decorator会红屏报错,需要安装一个babel插件: babel-plugin-transform-decorators-legacy 然后在根目录下的.ba ... 
- R语言学习——欧拉计划(11)Largest product in a grid
			Problem 11 In the 20×20 grid below, four numbers along a diagonal line have been marked in red. 08 0 ... 
- 术语-服务:SaaS
			ylbtech-术语-服务:SaaS SaaS是Software-as-a-Service(软件即服务)的简称,随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式. ... 
- 3-4 1449 web view
			1.app类型 不同类型的应用 区别 native app 纯原声app,Android用Java些,iOS用object c写 hybrid app 套用原声应用的外壳,既有原生的UI页面,又通过内 ... 
- Python软件开发规范
			bin 整个程序的执行路口 start.py conf 配置文件 setting.py lib 库 模块与包 common.py sql.py core 核心逻辑 ... 
- Python3 os模块应用
			调用模块的实质是运行python代码,比如a.py文件里有函数f(),那么你在调用a模块的时候,实质是运行了a模块里的函数f(),这个时候内存里就有这个函数了,可以直接用,那是不是随便一个py类型的文 ... 
- 小朋友学C语言(8)
			求圆周率 (一)圆周率简介 圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数.π也等于圆形之面积与半径平方之比.是精确计算圆周长.圆面积.球体积等几 ... 
- GlusterFS PERFORMANCE TUNING
			众所周知,glusterfs对小文件而言,就是个鸡肋,特别是在一个目录下有过W的小文件图片时,ls简单就是个坑,下面我对线上的glusterfs参数做一些优化调整,调整的命令: gluster vol ... 
