写这篇文章源自我之前的一次面试,题目便是问img标签属于块级元素还是行内元素,当时想都没想就说了是行内(inline)元素,面试官追问为什么能够设置 <img /> 标签的宽和高,当时脑子突然一懵,发现这是自己技术上的一个空白,所以有了这篇文章。
<img />标签的基本使用
MDN关于元素的定义
特殊的可替换元素
所有主流浏览器都支持 <img> 标签
<img> 标签定义 html 页面中的图像
<img> 标签有两个必需的属性:src 和 alt
强烈推荐在开发中每个图像中都使用 alt 属性。这样即使图像无法显示,用户还是可以看到关于丢失了什么东西的一些信息。而且对于残疾人来说,alt 属性通常是他们了解图像内容的唯一方式
<img /> 标签没有独占一行,所以是行内元素,这没啥问题
这个问题就要引申出下面部分了,<img /> 标签属于替换元素,具有内置的宽高属性,所以可以设置,具体解释看下面。
从元素本身的特点来讲,可以分为不可替换元素和替换元素
元素相关的MDN解释
(X)HTML 的大多数元素是不可替换元素,即其内容直接表现给用户端(例如浏览器)
如:<h1>我是标题</h1>
浏览器根据元素的标签和属性,来决定元素的具体显示内容
例如浏览器会根据 <img> 标签的src属性的值来读取图片信息并显示出来,而如果查看(X)HTML代码,则看不到图片的实际内容;又例如根据 <input> 标签的type属性来决定是显示输入框,还是单选按钮等
(X)HTML中的 <img>、<input>、<textarea>、<select>、<object> 都是替换元素。这些元素往往没有实际的内容,即是一个空元素
如:<img src="tigger.jpg"/>、<input type="submit" name="Submit" value="提交"/>
可替换元素的性质同设置了display:inline-block的元素一致
<img>属于可替换元素
<img>同时具有行内元素,行内块,和块级元素的特性
替换元素一般有内在尺寸,所以具有 width 和 height,可以设定
例如你不指定 <img> 的 width 和 height 时,就按其内在尺寸显示,也就是图片被保存的时候的宽度和高度
对于表单元素,浏览器也有默认的样式,包括宽度和高度
<img>、<input>属于行内替换元素。height/width/padding/margin均可用。效果等于块元素
来自:https://www.cnblogs.com/programmerzhang/archive/2020/11/27/14047688.html
在网上整理了一些解决多个img标签存在间隙的方法:多个img标签写在一行、将要闭合标签的地方与开始标签的地方重合、在img标签的父级上写:font-size:0;这个在解决display:inline-block出现的问题也有帮助、使用display:block(img是内联元素)要float一下才行
背景图片会等到html结构加载完成才开始加载img标签是网页结构的一部分,会在html结构加载的时候加载在网页加载的过程中,背景图片会等到结构加载完成(网页的内容全部显示以后)才开始加载,而img标签是网页结构(内容)的一部分会在html结构加载的过程中加载
在图像标签img中,除了常用的宽度width和高度height属性之外,还有两个比较重要并且也会用到的属性,就是alt和title,这都是用来显示图片内容的具体信息的,但是这两个属性也有不同的地方
是这样的需求,有一个web页面,里面图片的上传和预览来自于一个独立的文件服务器,对http的请求需要进行访问权限的设置,就是在请求的header里加一个Authorization的字段。上传好说我用的Axios直接添加一个header就行了
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!