inline-block前端程序猿们肯定不陌生,它是display属性的一个取值。
之所以称之为inline-block。是因为它兼具行内元素(inline-element)和块级元素(block-element)的特征。
Replaced element 置换元素
说到这,有必要提的就是置换元素。何为置换元素,在html中,有类特殊的元素如:
||
他们被称为可置换元素(Replaced element)。他们区别一般inline元素(相对而言,称non-replaced element)是:这些元素拥有内在尺寸(intrinsic dimensions),他们可以设置width/height属性。他们的性质同设置了display:inline-block的元素一致。上述六个标签在现代浏览器中即为天生的inline-block元素。
包裹性
包裹性的另一种说法就是让元素inline-block化。意思是默认情况下一个div的宽度是以100%显示的,而一旦给这个div添加了postion:absolute属性,则100%的默认宽度会变成自适应的内部元素宽度。而诸如:
overflow | position:absolute | float:left/right 等都可以让元素inline-block化产生包裹性。
而包裹性的作用很多,其中一个是可以使用其来清除元素的浮动。
inline-block的作用
css布局创建网站,浮动绝对占据了很大的比例.大块区域如主内容及侧边栏,以及在其中的小块区域,都可以看到浮动的影子。只是浮动经常会产生一些问题,那么问题来了?浮动是唯一的解决方案吗?
浮动通常表现正常,但有时候搞起来会很纠结。特别是处理内部容器中的浮动,比如对一排图片使用浮动后对齐出现问题。So,inline-block是我们的另一种选择。使用这种属性可以模拟部分浮动的特征,而不需要处理一些浮动带来的问题。
这里极力推荐一篇张鑫旭的文章:拜拜了浮动布局-基于display:inline-block的列表布局。文章讲解的非常透彻,也将使用inline-block需要解决的兼容问题给出了十分详尽可靠的解决方案。
inline-block和float的区别
虽然设置浮动跟设置inline-block有些特征类似,但两者的区别还是非常明显的: