block,inline,inline-block的区别和联系

1,017 阅读2分钟

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>