可替换元素
可替换元素
一个常见的疑问是img
是行内元素,但是能使用width
和height
设置宽高,这种元素被 CSS 规范定义为可替换元素。
根据 CSS 规范的描述,img
,video
等元素通过src
属性来替换内部内容,而这些内容通常具有固定的分辨率,宽高,例如一张图片等具有绝对单位的宽高属性(分辨率),所以它们也能使用width
,height
,margin
,border
等属性。
CSS 格式化模型中不考虑替换元素的内容。但是,它们的固有尺寸要用于布局计算中。
在浏览器的渲染引擎渲染页面的时候,img
等元素会不会阻塞 DOM 解析呢?DOM 解析的过程虽然遇到img
会去加载,但是 DOM 解析不会停止,因为img
内部替换内容的宽高尺寸在 DOM 解析过程中并不需要,只有在布局计算的时候才需要。
根据 HTML 文档的介绍,有以下这些可替换元素:
// 行内级的
<img />
<input type="image" /> //只有image类型才是 // 块级的
<iframe></iframe>
<audio></audio>
<video></video>
<canvas></canvas>
embed object