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