什么是可替换元素?
请问什么是可替换元素和非可替换元素,它们的差异是什么?并举例说明。
前端面试中 html 的题目本来就最少,而且并不难,翻来覆去也就那几样。我们之前已经谈到过最经典的 HTML 语义化 ,今天就借此机会来谈谈可替换元素。
释义
什么是可替换元素?顾名思义,就是会被替换的元素。 (尬笑……
比如一个典型的可替换元素 img:
<img src=xxx.jpg>我们并没有在 img 标签中写入任何内容,那它的内容从哪里来的呢?
是浏览器去下载 src 属性给到的图片,并用该图片资源替换掉 img 标签,而且浏览器在下载前并不知道图片的宽高。所以,可替换元素比较特殊,它的宽高是由其加载的内容决定的。(当然 css 可以覆盖其样式)
示例
还是用 img 标签举几个例子:
<img src="https://avatars2.githubusercontent.com/u/17703242?s=460&v=4">该图片在页面中展现出来的话,就是图片本身本身的宽高。
img 元素也支持 width 和 height 属性:
<img width="80" height="80" src="https://avatars2.githubusercontent.com/u/17703242?s=460&v=4">此时该元素展现出来就是宽高为 80 像素。如果我们再用 CSS 去覆盖其样式:
img {
width: 60px;
height: 60px;
}该元素的展现即为 60 像素。
MDN 的释义
看过上面的例子之后我们再来理解概念性的知识就比较容易了。
可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。简单来说,它们的内容不受当前文档的样式的影响。CSS 可以影响可替换元素的位置,但不会影响到可替换元素自身的内容。
典型的可替换元素有 <iframe> <video> <embed> <img> ,还有一些元素仅在特定情况下被作为可替换元素处理,比如 <input> 。
来自:https://segmentfault.com/a/1190000018736644
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!