HTML中的图片标签,真的如你认为的那么简单吗?

文章介绍了HTML中用于嵌入图片的元素,包括其基本使用方法,如src属性的设置,以及相对路径和绝对URL的使用。还提到了SEO最佳实践,如使用描述性文件名。另外,文章指出元素是已弃用的,不应再使用,现代开发应始终使用。最后,讨论了作为行内替换元素的特性,允许设置宽高。
摘要由CSDN通过智能技术生成

今天讨论一个很有意思的话题: HTML 中的图片真的那么简单吗?

HTML 中的图片

<img>:图像嵌入元素

MDN Web Docs 地址:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img

在一开始时,Web 仅有文本,那真的是很无趣。

幸运的是,没过多久网页上就能嵌入图片和其他有趣的内容了。

虽然还有许多其他类型的多媒体,但是从地位比较低的 <img> 元素开始是符合逻辑的,它常常被用来在网页中嵌入一张简单的图片。

怎样将一幅图片放到网页上?

我们可以用<img> 元素来把图片放到网页上。

它是一个空元素(它不需要包含文本内容或闭合标签),最少只需要一个 src (一般读作其全称 *source)*来使其生效。src 属性包含了指向我们想要引入的图片的路径,可以是相对路径或绝对 URL,就像 <a> 元素的 href 属性一样。

举个例子来看,如果你有一幅文件名为 dinosaur.jpg 的图片,且它与你的 HTML 页面存放在相同路径下,那么你可以这样嵌入它:

<img src="dinosaur.jpg">

如果这张图片存储在和 HTML 页面同路径的 images 文件夹下(这也是 Google 推荐的做法,利于SEO/索引),那么你可以采用如下形式:

<img src="images/dinosaur.jpg">

备注: 搜索引擎也读取图像的文件名并把它们计入 SEO。因此你应该给你的图片取一个描述性的文件名:dinosaur.jpg 比 img835.png 要好。

你也可以像下面这样使用绝对路径:

<img src="https://www.example.com/images/dinosaur.jpg">

但是这种方式是不被推荐的,这样做只会使浏览器做更多的工作,例如重新通过 DNS 再去寻找 IP 地址。通常我们都会把图片和 HTML 放在同一个服务器上。

上面的代码会展示如下的结果页面:

备注: 像<img><video>这样的元素有时被称之为替换元素,因为这样的元素的内容和尺寸由外部资源(像是一个图片或视频文件)所定义,而不是元素自身。

<image>:图像元素 — 不再推荐使用该特性

MDN Web Docs: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/image

已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的兼容性表格以指导你作出决定。请注意,该特性随时可能无法正常工作
非标准: 该特性是非标准的,请尽量不要在生产环境中使用它!

HTML <image> 元素是 <img> 元素的一个古老且支持不足的前身。不应该使用它。

某些浏览器会尝试将它自动转化为 <img> 元素,在也指定了 src 属性时可能会成功。

实际应用中,到底是img还是image?

在实际开发中,我们会发现一个很奇怪的问题:

img和image展示结果一样

因为:某些浏览器会尝试将它自动转化为 <img> 元素,在也指定了 src 属性时可能会成功。

下面代码

<img src="images/dinosaur.jpg">
<image src="images/dinosaur.jpg">

上面的代码会展示如下的结果页面:

为什么?那html图片展示,到底用img还是image?

  • img属于HTML标签,是一个单标签
  • image属于服务器控件,是个双标签

为什么要使用image?

  • image控件能解决一个棘手的问题:img标签不能识别这个符号

这个符号,通常这个符号都是代表网站根目录,img标签只能使用相对路径引用图片。

  • uniapp小程序上边的开发一般用image,不要使用img

如果在uniapp中使用img标签开发手机app项目,微信开发者工具或者浏览器,其中一个工具上图片是有可能显示不出来的。

总结

大部分时候两者没有多大的区别,可以交替使用,但是我们一般使用image

扩展 – img是什么元素,属于块级元素还是行内元素

<img />是行内元素还是块级元素?

<img />标签没有独占一行,所以是行内元素

那么衍生出一个新问题:既然是行内元素为什么能够设置宽高呢?

<img /> 标签属于替换元素,具有内置的宽高属性,所以可以设置。

元素的定义

从元素本身的特点来讲,可以分为

  • 不可替换元素
  • 替换元素

可替换元素

MDN Web Docs 地址: https://developer.mozilla.org/zh-CN/docs/Web/CSS/Replaced_element

在 CSS 中,可替换元素(replaced element)的展现效果不是由 CSS 来控制的。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。

简单来说,它们的内容不受当前文档的样式的影响

  • CSS 可以影响可替换元素的位置,但不会影响到可替换元素自身的内容。

某些可替换元素,例如 <iframe> 元素,可能具有自己的样式表,但它们不会继承父文档的样式。

CSS 能对可替换元素产生的唯一影响在于,部分属性支持控制元素内容在其框中的位置或定位方式。有关详细信息,请参阅本文下面的控制内容框中的对象位置。

典型的可替换元素有:

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

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

<option>
<audio>
<canvas>
<object>
<applet> 

不可替换元素

(X)HTML的 大多数元素是不可替换元素,即 其内容直接表现给用户端(例如浏览器)

如:<h1>我是标题</h1>

总结

  • 属于可替换元素
  • 同时具有行内元素,行内块,和块级元素的特性

<img><input>属于行内替换元素。height/width/padding/margin均可用。效果等于块元素。

参考文档

  • https://developer.mozilla.org/zh-CN/docs/Learn/HTML/Multimedia_and_embedding/Images_in_HTML
  • https://blog.csdn.net/weixin_44865458/article/details/114915813
  • https://blog.csdn.net/weixin_70426591/article/details/127396328
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端布道人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值