CSS基础:block,inline和inline-block

css的display属性是前端开发中很是常见的属性,本文简单介绍下其中比较经常使用的属性值,即block、inline和inline-block。css

HTML组件中呈现一片空白区域的组件均可当盒模型(box modal),而CSS则提供了display属性来控制盒模型的外观。前端

1. block类型(块)浏览器

这种盒模型的组件默认占据一行,容许经过CSS设置宽带、高度。布局

例如:<div .../><p ../.><form../><table../<h1><h6><ul../>等。spa

display:block
block 元素会独占一行,多个block元素会各自新起一行。默认状况下,block元素宽度会自动填满其父元素的宽度。
block元素能够设置width,height属性。块级元素及时设置了宽度,仍然是独占一行。
block元素能够设置margin和padding属性。code

2. inline类型(内联)orm

这种盒模型的组件不会占据一行,不能够调整宽度、高度。对象

例如:<span../><a../> <strong../><em../><label../><input../><select../><textarea../><img../><br../>开发

CSS为display属性提供了block、inline两个属性值,能够改变HTML组件默认的盒模型。input

display:inline

inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。

inline元素设置width,height均无效。

inline元素的margin和padding属性,水平方向的padding-left、padding-right、margin-left、margin-right都产生边距效果,但竖直方向上的padding-top、padding-bottom、margin-top和margin-bottom不会产生边距效果。

3. inline-block类型

CSS还提供了一种inline-block盒模型,这种盒模型时inline模型和block模型的综合体:inline-block盒模型的元素不会占据一行,同时也支持width、height指定指定宽带及高度。而且容许它的左边和右边出现其余内容。

display:inline-block

简单来讲就是将对象呈现为inline对象,可是对象的内容做为block对象呈现。以后的内联元素会被排列在同一行内。好比能够给一个link(<a>元素)inline-block属性,使其既有block的宽度高度特性、又具备inline的可同行性。

应用场合

不少时候咱们必须让一些块元素并排显示,通常会想到浮动,可是块元素浮动设边距的时候在IE下会出现加倍的BUG,因此不少时候不得不把这个块元素套在一个内联元素里,而后给这个内敛元素浮动和边距。经过设置:display:inline-block,就将对象呈递为内联对象,但对象的内容做为块对象呈递。旁边的内联对象会被呈递在同一行内,容许空格。

说明:

block元素能够包含block元素和inline元素,但inline元素只能包含inline元素。要注意这个是一个大概的说法,每一个特定的元素能包含的元素也是特定的,因此具体到个别元素上,这条规律是不适用的。好比p元素,只能包含inline元素,而不能包含block元素。

通常来讲,能够经过display:inline和display:block的设置来改变元素的布局级别。

兼容性问题:IE六、IE7不支持inline-block,因此在IE中对内联元素使用display:inline-block理论上IE是不识别的,但会在IE下触发layout,从而使内联元素拥有了display:inline-block属性的表象。

解决IE六、IE7兼容性的方法:

首先设置inline-block触发块元素,具备了layout的特性,而后设置display:inline使块元素呈现内联元素,此时layout的特性不会消失。

直接设置display:inline,使用zoom:1触发layout。
兼容全部浏览器的方法是:

.selector {
        display : inline-block;
        *display : inine;
        *zoom:1;
        }

本文只列出了display常见的三个属性,除此以外,display的属性值还有:inline-table、和表格相关的盒模型、list-item、run-in等。

相关文章
相关标签/搜索