display:inline、block、inline-block的区别

block元素的特点是:

  元素另起一行;

  行宽高边距可控制;

  <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

inline元素的特点是:

  和其他元素都在一行上;

  高,行高及顶和底边距不可改变;

  宽度就是它的文字或图片的宽度,不可改变。

  <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

inline-block的元素特点:

  将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表症。

从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block的效果。

这时块元素仅仅是被display:inline-block触发了layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。

  解决方法:

  1、先使用display:inline-block属性触发块元素,然后再定义display:inline:

div {display:inline-block;}

div {display:inline;}

  2、直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。

   div {display:inline; zoom:1;}

可以如此改写:

{

display:inline-block;

*display:inline;

*zoom:1;

}

inline-block和float的区别:

文档流(Document flow):浮动元素会脱离文档流,并使得周围元素环绕这个元素。而inline-block元素仍在文档流内。因此设置inline-block不需要清除浮动。当然,周围元素不会环绕这个元素,你也不可能通过清除inline-block就让一个元素跑到下面去。

水平位置(Horizontal position):很明显你不能通过给父元素设置text-align:center让浮动元素居中。事实上定位类属性设置到父元素上,均不会影响父元素内浮动的元素。但是父元素内元素如果设置了display:inline-block,则对父元素设置一些定位属性会影响到子元素。(这还是因为浮动元素脱离文档流的关系)。

垂直对齐(Vertical alignment):inline-block元素沿着默认的基线对齐。浮动元素紧贴顶部。你可以通过vertical属性设置这个默认基线,但对浮动元素这种方法就不行了。这也是我倾向于inline-block的主要原因。

空白(Whitespace):inline-block包含html空白节点。如果你的html中一系列元素每个元素之间都换行了,当你对这些元素设置inline-block时,这些元素之间就会出现空白。而浮动元素会忽略空白节点,互相紧贴

解决inline-block空白问题:

删除html中的空白:不要让元素之间换行,这可能比较蛋疼,但也是一种方法,特别是你元素不多的时候。

结构一:

<ul>

<li>

item1</li><li>

item2</li><li>

item3</li><li>

item4</li><li>

item5</li>

</ul>

结构二:

<ul>

<li>item1</li

><li>item2</li

><li>item3</li

><li>item4</li

><li>item5</li>

</ul>

结构三:

<ul>

<li>item1</li><!--

--><li>item2</li><!--

--><li>item3</li><!--

--><li>item4</li><!--

--><li>item5</li>

</ul>

结构四:

<ul><li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li></ul>

使用负边距:你可以用负边距来补齐空白。但你需要调整font-size,因为空白的,而且需要考虑多种浏览器。

jquery解决:

<ul class="removeTextNodes">

<li>item1</li>

<li>item2</li>

<li>item3</li>

<li>item4</li>

<li>item5</li>

</ul>

ul {

list-style: none outside none;

padding: 10px;

background: green;

text-align: center;

font-size: 12px;

}

ul li {

display: inline-block;

*display: inline;

zoom: 1;

background: orange;

padding: 5px;

}

$(‘.removeTextNodes‘).contents().filter(function() {

return this.nodeType === 3;

}).remove();

时间: 2024-10-03 01:08:35

display:inline、block、inline-block的区别的相关文章

display:inline、block、inline-block的区别 摘】

display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是: 和其他元素都在一行上: 高,行高及顶和底边距不可改变: 宽度就是它的文字或图片

【转】display:inline、block、inline-block的区别

转自:http://www.cnblogs.com/jdonson/archive/2011/06/10/2077932.html display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就

display:inline、block、inline-block的区别(摘抄)

display:inline.block.inline-block的区别 display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是: 和其

display:inline、block、inline-block 的区别

一.块级元素 与  行级元素 要理解display:inline.block.inline-block的区别,需要先了解HTML中的块级(block)元素和行级(inline)元素的特点,行内元素也叫内联元素. 1.块级元素 总是另起一行开始:高度,行高以及顶.底边距都可以控制:宽度缺省是它所在容器的100%,除非设定一个宽度.块级元素通常作为其他元素的容器,可以容纳内联元素和其他块元素.block element的HTML标签如下: address-地址blockquote-块引用center

(转载)display:inline、block、inline-block的区别

display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是:  和其他元素都在一行上: 高,行高及顶和底边距不可改变: 宽度就是它的文字或图

display:inline、block、inline-block的区别(转)

display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是:  和其他元素都在一行上: 高,行高及顶和底边距不可改变: 宽度就是它的文字或图

【转载】display:inline、block、inline-block的区别

display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是:  和其他元素都在一行上: 高,行高及顶和底边距不可改变: 宽度就是它的文字或图

(转) display:inline、block、inline-block的区别

display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是: 和其他元素都在一行上: 高,行高及顶和底边距不可改变: 宽度就是它的文字或图片

display:block / inline / inline-block 三个之间的区别

块元素特点: 每次都是从新行开始: 可以设置宽.高,行高,顶底边距等: <div>  <ul> <ol> <li> <dl> <dt> <dd> <table> <form>  <p>  <hr/><textarea>等都是 行元素特点: 和别的元素在同一行: 不可以设置宽高,行高,顶底边距等: <span> <img> <var&g

display:block,inline,inline-block,none的区别

display几个常用的属性以及区别 none,block,inline,inline-block; none:会隐藏元素,不占据dom空间,下文会提到; block:块级元素,前后会有换行符,占据一行;可以进行宽高设置,上下左右的padding,margin属性也可以设置; inline:行内元素,前后没有换行符,不能进行宽高设置;由左到右,从上到下排列,不可以设置上下margin,padding属性; inline-block:既有宽高属性,又不会换行; display:none跟visib