[html] 第19天 说说你对html中的置换元素和非置换元素的理解
haizhilin2013 opened this issue · 15 comments
第19天 说说你对html中的置换元素和非置换元素的理解
置换元素是指,该元素有自带的属性,并且css渲染模型不对此内容渲染,就好比img。而非置换元素是对于不是置换元素的都是。而置换元素常见在行内置换元素看到,主要是行内置换元素与行内元素的区别在于可控高度
置换元素的定义如下:
一个 内容 不受 CSS 视觉格式化模型控制,CSS 渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素,被称之为置换元素。
一般来说 span
这种行内非置换元素设置宽高是没有意义的,除非修改 display: inline-block
。对于行内置换元素,是可以设置宽高的。比如常用的 img
标签自适应图片时,我们只需要定义一个宽或者高,剩下的就会自动帮我们计算。
参考文章:置换和非置换元素
看了楼上提供的博客,看了第一遍感觉不是太懂,看了第二遍大概自己对置换元素和非置换元素有一个概念;
置换元素是非常特殊的元素,通常会有自己的宽度高度等,css渲染不会对此元素进行渲染,非置换元素在w3c没有明确的规定,可以确认的是置换元素之外的就是非置换元素;
- script
- img
- video
- audio
- picture
- iframe
置换元素(Replaced Element):主要是指 img、input、textarea、select、object 等这类默认就有 CSS 格式化外表范围的元素。
置换元素(Replaced Element)
简单来说,置换元素可以设置宽 高,他们有自己的属性,和inline-block有一样的属性
-
主要是指 img、input、textarea、select、object 等这类默认就有 CSS 格式化外表范围的元素。
-
浏览器根据元素的标签和属性,来决定元素的具体显示内容
- 例如:浏览器根据标签的src属性显示图片。根据type属性决定显示输入框还是按钮
非置换元素(non-Replaced Element):
-
就是除了 img、input、textarea、select、object 等置换元素以外的元素。
-
内容直接展示给浏览器。例如标签,标签里的内容会被浏览器直接显示给用户
来和我一起刷3+1吧
gitHub: https://github.com/Renato-Z/exercises/blob/master/history.md
-
置换元素:是根据元素自身的标签和属性来决定展示什么内容。他们有自己属性,就算你什么都没设置,他也有自己的宽高样式等。
如img的src,input的type,select的option标签等 -
非置换元素:内容直接展示出来
置换元素(Replaced Element)
简单来说,置换元素可以设置宽 高,他们有自己的属性,和inline-block有一样的属性
主要是指 img、input、textarea、select、object 等这类默认就有 CSS 格式化外表范围的元素。
浏览器根据元素的标签和属性,来决定元素的具体显示内容
例如:浏览器根据标签的src属性显示图片。根据type属性决定显示输入框还是按钮
非置换元素(non-Replaced Element):
就是除了 img、input、textarea、select、object 等置换元素以外的元素。
内容直接展示给浏览器。例如标签,标签里的内容会被浏览器直接显示给用户
置换元素:可以替换元素标签类容(img、input等)
非置换元素:不能替换元素内容(label、em等)
置换元素**(replaced element)是指一个内容不受CSS视觉格式化模型控制,CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素。
即:置换元素主要是指 img, input, textarea, select, object 等这类默认就有 CSS 格式化外表范围的元素
非置换元素:内容直接展示给浏览器
2.1 置换元素
- 一个内容不受CSS视觉格式化模型控制,CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素,被称之为置换元素。
- 置换元素就是浏览器根据元素的标签和属性,来决定元素的具体显示内容。
- 例如浏览器会根据img标签的src属性的值来读取图片信息并显示出来,而如果查看(X)HTML代码,则看不到图片的实际内容;又例如根据input标签的type属性来决定是显示输入框,还是单选按钮等。
- HTML中的img、input、textarea、select、object都是置换元素。这些元素往往没有实际的内容,即是一个空元素。
2.2非置换元素
HTML 的大多数元素是不可替换元素,即其内容直接表现给用户端(例如浏览器)
简单来说,自带样式,宽高,
script
img
video
audio
picture
iframe
置换元素通常元素本身就拥有固有宽高,不受css视觉格式化模型控制,css渲染模型并不对此内容进行渲染
常见的置换元素
img
input
textarea
select
object
iframe
canvas
除此之外就算是非置换元素