霍者博客

详解display属性

首先,所有主流浏览器都支持 display 属性。其次,我们都知道display 属性规定元素应该生成的框的类型。默认值:inline

我们常用的display属性值有:

  1. inline

  2. block

  3. inline-block

  4. none

把 display 设置成 none 不会保留元素本该显示的空间,但是 visibility: hidden 还会保留。那么,display:inline、display:block和display:inline-block有什么区别呢?

inline特性

我们发现内联对象inline给它设置属性height和width是没有用的,致使它变宽变大的

原因是

内部元素的宽高+padding。观察inline对象的前后元素我们会发现inline不单独占一行,其它元素会紧跟其后。

block特性

而块对象block是可以设置宽高的,但是它的实际宽高是本身宽高+padding。观察block的前后元素我们会发现block要单独占一行。然而,当我们即需要div有宽高,又不希望它独占一行怎么办?

inline-block特性

这个时候我们就需要使用inline-block了,再观察一下上面的demo,我们会发现:inline-block既具有block的宽高特性又具有inline的同行元素特性。也就是说,当我们想要让一个元素既不独占一行,又可以设置其宽高属性的时候,我们就可以选择inline-block了。然而,在IE6/7下padding对inline的宽高是对其没影响的。由此,我们可以联想到行内元素和块级元素

行内元素特点

  • 和其他元素都在一行上;

  • 元素的高度、宽度、行高及顶部和底部边距不可设置;

  • 元素的宽度就是它包含的文字或图片的宽度,不可改变。

块级元素特点

  • 每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行

  • 元素的高度、宽度、行高以及顶和底边距都可设置。

  • 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

  • 在html中,span、a、label、input、img、strong和em就是典型的行内元素(inline)元素。

  • 块级元素是可以设置宽高的,但是它的实际宽高是本身宽高+padding。block元素要单独占一行。内联元素不单独占一行,给他设置宽高是没有用的。

  • 在html中div、 p、h1、form、ul和 li就是块级元素。设置display:block就是将元素显示为块级元素。

那么,display的其他属性值呢?

  1. list-item 此元素会作为列表显示。

  2. run-in此元素会根据上下文作为块级元素或内联元素显示。

  3. table 此元素会作为块级表格来显示(类似table),表格前后带有换行符。

  4. inline-table 此元素会作为内联表格来显示(类似table),表格前后没有换行符。

  5. table-row-group 此元素会作为一个或多个行的分组来显示(类似tbody)

  6. table-header-group 此元素会作为一个或多个行的分组来显示(类似thead)

  7. table-footer-group: 此元素会作为一个或多个行的分组来显示(类似tfoot)

  8. table-row 此元素会作为一个表格行显示(类似 tr )。

  9. table-column-group 此元素会作为一个或多个列的分组来显示(类似 colgroup )。

  10. table-column 此元素会作为一个单元格列显示(类似 col )

  11. table-cell 此元素会作为一个表格单元格显示(类似 td 和 th)

  12. table-caption 此元素会作为一个表格标题显示(类似 caption)

原创文章请注明转载自霍者博客本文地址:http://www.huozheweb.com/post/437.html,标题:详解display属性

【我来说两句】
分享到:

相关文章:



评论 0

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。