好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

行内元素和块级元素有哪些?_html/css_WEB-ITnose

一.行内元素和块级元素有哪些?

块级元素

information on author long quotation push button table caption definition description deleted text

generic language/style container definition list definition term form control group interactive form

heading

heading

heading heading heading heading horizontal rule inline subwindow inserted text fieldset legend list item client-side image map alternate content container for non frame-based rendering alternate content container for non script-based rendering generic embedded object ordered list

paragraph

       preformatted text                         table                         table body                         table data cell                         table footer                         table header cell                         table header                         table row                         unordered list              

行内元素

anchor abbreviated form acronym bold text style I18N BiDi over-ride large text style
forced line break push button citation computer code fragment deleted text instance definition emphasis italic text style inline subwindow Embedded image form control inserted text text to be entered by the user form field label text client-side image map generic embedded object short inline quotation sample program output, scripts, etc. option selector small text style generic language/style container strong emphasis subscript superscript multi-line text field teletype or monospaced text style instance of a variable or program argument

二.行内元素与块级元素有什么不同?

1. 尺寸-块级元素和行内元素之间的一个重要的不同点

行内元素和width

W3C CSS2 标准规定行内元素、非置换元素不会应用width属性。

以下例子中,对行内元素应用了width:200px,你可以看到,根本就没有什么效果。

行内元素和height

W3C CSS2 标准规定行内元素、非置换元素不会应用height属性,但是盒子高度可以通过line-height来指定。

以下例子,对行内元素应用了height:50px,你可以看到什么效果都没。

行内元素和padding

你可以给行内元素设置padding,但只有padding-left和padding-right生效。

以下例子,行内元素应用了padding:50px。你可以看到对左右的内容有影响,但是对上下没影响。

行内元素和marging

margin属性也是和padding属性一样,对行内元素左右有效,上下无效。

下面的例子,对应用了margin:50px,你可以看到左右边缘是生效了但是内容上下却没有。

记住对行内元素

设置宽度width 无效。
设置高度height 无效,可以通过line-height来设置。
设置margin 只有左右margin有效,上下无效。
设置padding 只有左右padding有效,上下则无效。注意元素范围是增大了,但是对元素周围的内容是没影响的,看图上效果就知道了

上文部分翻译自:http://www.maxdesign.com.au/presentation/inline/

2.text-align属性是两者表现的又以不同之处

在W3C CSS2.1规范第16.2节 对text-align 有详细地描述:
------------------------------------------
值: left | right | center | justify | inherit
初始值:匿名值,由'direction'的值而定,如果'direction'为'ltr'则为'left',如果'direction'为'rtl'则为'right'。
应用于: 块级元素,表格单元格,行内块元素
继承性: 是
计算后的值:初始值或指定值
------------------------------------------

这个特性描述了如何使一个块元素的 行内内容 对齐。
注意一点,标准里说这个属性是用来对齐 行内内容 的,所以, 不 应该对块级内容起作用。
解释一下, 行内内容 是说由 行内元素 组成的内容,行内元素大家都知道吧,比如 SPAN 元素,IFRAME元素和元素样式的 ‘display : inline’ 的都是行内元素; 块级内容 跟则是由块级元素构成,DIV 是最常用的块级元素。块级元素和行内元素的区别是,块级元素会占一行显示,而行内元素可以在一行并排显示。
这样,我们对这个特性的认识应该就清楚了。但是,问题来了,虽然标准里这么规定,那么是不是所有浏览器都遵守呢?答案是否定的。猜猜是哪个浏览器这么特立独行啊? IE!!
IE6/7及IE8混杂模式中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。
解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:auto; margin-right:auto”。但这个方式 IE6/IE7/IE8的混杂模式中不支持,所以还要设置父容器的 "text-align:center;"。

若居中对齐的子元素内的行内内容不需要居中对齐,则还需要为其设置“text-align:left”:

查看更多关于行内元素和块级元素有哪些?_html/css_WEB-ITnose的详细内容...

  阅读:36次