block
特点:
- 独占一行
- 可以设置height,width,padding,margin
- 一般情况下可以包含其他内联元素或者块级元素
- 宽度缺省时,默认为100%,占满和整个父级元素的宽度
块级元素标签:
常用:div,p,form,hr,ol,ul,li,h1-h6,table
inline
特点:
- 不会换行,连续排列
- width 和 height 属性将不起作用。
- 垂直方向的内边距padding、外边距margin以及边框border会被应用但是不会把其他处于 inline 状态的盒子推开。
- 水平方向的内边距padding、外边距margin以及边框border会被应用而且也会把其他处于 inline 状态的盒子推开。
- 行内元素只能包含数据和其他行内元素
- 默认为基线对齐,即text-align = baseline
内联元素标签:
- b, big, i, small, tt
- abbr, acronym, cite, code, dfn, em, kbd, strong, samp, var
- a, bdo, br, img, map, object, q, script, span, sub, sup
- button, input, label, select, textarea
inline-block
特点:
- width,height,margin,padding,border都起作用,但是不会换行
- 是上述两种类型的综合
内联块级元素标签: img、input、td、select、textarea、label,button
行内替换元素
根据元素的内容(是否浏览器会替换掉元素)类型,HTML元素可以主要分为2大类:
- 替换元素(replaced elements) 元素本身没有实际内容,浏览器根据元素的类型和属性,来决定元素的具体显示内容 比如img、input、iframe、video、embed、canvas、audio、object等
- 非替换元素(non-replaced elements) 和替换元素相反,元素本身是有实际内容的,浏览器会直接将其内容显示出来,而不需要根据元素类型和属性来判断到底显示什么内容 比如div、p等
在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。
简单来说,它们的内容不受当前文档的样式的影响。CSS 可以影响可替换元素的位置,但不会影响到可替换元素自身的内容。某些可替换元素,例如 元素,可能具有自己的样式表,但它们不会继承父文档的样式。
CSS 能对可替换元素产生的唯一影响在于,部分属性支持控制元素内容在其框中的位置或定位方式。有关详细信息,请参阅本文下面的控制内容框中的对象位置。 典型的可替换元素有:
<iframe><video><embed><img>
有些元素仅在特定情况下被作为可替换元素处理,例如:
<option><audio><canvas><object><applet>