替换元素与非替换元素

4,001 阅读2分钟

  今天开始仔细研读《css权威指南》,发现跟之前读的感觉不一样,有些之前忽略的内容在有了项目经验后再回过头看,有了新的理解。之前接触较多是行内元素和块状元素,display属性值的不同在使用过程中会出现很多差异,在此简单总结下:

  每个元素都会有display属性,比如div的默认display值为“block”,会自动占据空间,可以通过设置高度、宽度等改变元素的显示。span的默认display值为“inline”,没有自己的空间,只能依附于其他块状元素存在,对他设置的宽高等都是无效的。具体区别如下:

  1. 块状元素会独占一行,宽度自动填满其父元素宽度。行内元素不会独占一行,响铃的行内元素只有在一行填充不下的时候才会换行;
  2. 块状元素可以设置高度和宽度,行内元素设置是无效的;
  3. 块状元素可设置margin和padding,行内元素的margin左右有效,上下无效,对于padding上下左右都有效
除此之外还有一种分类,即可替换元素与非可替换元素。

可替换元素

可替换元素的展现不是由css控制的,这是一类外观渲染独立于css的外部对象。浏览器会根据元素的标签和属性,来决定元素的具体显示内容。

eg:例如浏览器会根据<img>标签的src属性的值来读取图片信息并显示出来,而如果查看(x)html代码,则看不到图片的实际内容;又例如根据<input>标签的type属性来决定是显示输入框,还是单选按钮等。

(x)html中的<img><input><textarea><select><object>都是替换元素。这些元素往往没有实际的内容,即是一个空元素。

不可替换元素

(x)html 的大多数元素是不可替换元素,即其内容直接表现给用户端(例如浏览器)。如<div><p><h1><h6><table>,等等。