文章目录

  • 前言
  • 1、< img >是可替换元素
  • 2、什么是可替换元素



前言

为什么img标签是行内元素,但是却可以设置它的宽高

1、< img >是可替换元素

<img>是一个可替换元素。它的 display 属性的默认值是 inline,但是它的默认分辨率是被嵌入的图片的原始宽高来确定的,使得它就像 inline-block 一样。你可以为 <img> 标签设置 border/border-radius、padding/margin、width、height 等等的 CSS 属性。

<img> 没有基线(baseline),这意味着,当在一个行内格式的上下文(an inline formatting context)中使用 vertical-align: baseline 时,图像的底部将会与容器的文字基线对齐。


例如:<img src=“xxx.jpg”>

我们并没有在img标签中写入任何内容,那它的内容从哪里来的呢?

是浏览器去下载src属性给到的图片,并用该图片资源替换掉img标签,而且浏览器在下载前并不知道图片的宽高。所以,可替换元素比较特殊,它的宽高是由其加载的内容决定的。该图片在页面中展现出来的话,就是图片本身本身的宽高。(当然CSS可以覆盖其样式,比如设置宽高)。

2、什么是可替换元素

在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。内容不受CSS渲染控制,CSS渲染模型并不考虑对此内容的渲染,且元素本身一般拥有固有尺寸(宽度,高度,宽高比)的元素。

它们有内置尺寸和内置宽高,也可以设置width和height

简单来说,它们的内容不受当前文档的样式的影响。CSS 可以影响可替换元素的位置,但不会影响到可替换元素自身的内容。某些可替换元素,例如 元素,可能具有自己的样式表,但它们不会继承父文档的样式。

举例: 例如浏览器会根据标签的src属性的值来读取图片信息并显示出来,图片的内容由src决定,CSS并不考虑对图片的内容进行渲染。

典型的可替换元素有:

<iframe>
<video>
<embed>
<img>

有些元素仅在特定情况下被作为可替换元素处理,例如:

<option>

<audio>

<canvas>

<object>

<applet>

HTML 规范也说了 <input> 元素可替换,因为 “image” 类型的 <input> 元素就像<img>一样被替换。但是其他形式的控制元素,包括其他类型的 <input> 元素,被明确地列为非可替换元素(non-replaced elements)。该规范用术语小挂件(Widgets)来描述它们默认的限定平台的渲染行为。

images改名字 img怎么修改_css