html元素分类:CSS中块级元素、行内元素、行内块元素区别

133 阅读3分钟

元素是文档结构的基础,在css里面,每个元素生成了包含内容的框(box), 大家都叫“盒子”。但是不同的元素显示方式是不同的,有占据一整行的,有水平一个挨着一个的。比如:div 与 span 的显示方式不一样,因为 div是块级元素,会占据一行,而span为行内元素,可多个span放置一行。接下来就详细讲一下在CSS中块级元素、行内元素和行内块级元素的区别。

块级元素 block

块级元素,顾名思义,该元素呈现“块”状,所以它有自己的宽度和高度,也就是可自定义 width 和 height。除此之外,块级元素比较霸道,它独自占据一行高度(float浮动除外),一般可以作为其他容器使用,可容纳块级元素和行内元素。块级元素有以下特点:

  1. 每个块级元素都是独自占一行;
  2. 高度,行高,外边距(margin)以及内边距(padding)都可以控制;
  3. 元素的宽度如果不设置的话,默认为父元素的宽度;
  4. 多个块状元素标签写在一起,默认排列方式为从上至下;

常见块级元素:address caption dd div dl dt fieldset form h1~h6 h4 legend li noframes noscript ol ul p pre table tbody td tfoot th thead tr。

行内元素 inline

行内元素不可以设置宽(width)和高(height),但可以与其他行内元素位于同一行,行内元素内一般不可以包含块级元素。行内元素的高度一般由元素内部的字体大小决定,宽度由内容的长度控制。行内元素有以下特点:

  1. 不会独占一行,相邻的行内元素会排列在同一行里,直到一行排不下才会自动换行,其宽度随元素的内容而变化;
  2. 高宽无效,对外边距(margin)和内边距(padding)仅设置左右方向有效 上下无效;
  3. 设置行高有效,等同于给父级元素设置行高;
  4. 元素的宽度就是它包含的文字或图片的宽度,不可改变;
  5. 行内元素中不能放块级元素,a 链接里面不能再放链接;

常见行内元素:a abbr aconym b bdo(bdo 指的是 bidi 覆盖Bi-Directional Override,用来覆盖默认的文本方向) big br cite code dfn em i kbd label q samp small span strong sub sup tt var

行内块级元素 inline-block

行内块级元素,它既具有块级元素的特点,也有行内元素的特点,它可以自由设置元素宽度和高度,也可以在一行中放置多个行内块级元素。比如:input、img就是行内块级元素,它可设置高宽以及一行多个。具体特点如下:

  1. 高度、行高、外边距以及内边距都可以控制;
  2. 默认宽度就是它本身内容的宽度,不独占一行,但是之间会有空白缝隙,设置它上一级的 font-size 为 0,才会消除间隙;

常见行内元素:button input textarea select img

元素类型转换 display

display:block ,定义元素为块级元素
display : inline ,定义元素为行内元素
display:inline-block,定义元素为行内块级元素

总结

不管块级元素还是行内元素,区别:一是排列方式,二是宽高边距设置,三是默认宽度。
块级元素会独占一行,而内联元素和内联块元素则会在一行内显示;
块级元素和内联块元素可设置 width、height 属性,而内联元素设置无效;
块级元素的 width 默认为 100%,而内联元素则是根据其自身的内容或子元素来决定其宽度;
而行内块级元素又同时拥有块级元素和行内元素的特点。