为什么要设置 alt 属性,原因是:
例如图片路径、文件名拼错,资源下载失败
用户使用不支持图片的浏览器,如 Lynx
用户主动关闭图片显示以减少数据的传输
alt
属性填写内容根据图片类型决定
填写空 alt
。此类图片不应使用<img>
标签,CSS background images
是更优方案
填写文本本身。应避免将文本放到图像里,CSS
修饰文本是更优方案
提供无障碍连接文本。如链接到 XX
搜索引擎会通过图片 alt title figure
及上下文,机器或人工标注读取图片信息
屏幕阅读软件也会朗读上下文
所以,如果已经在上下文中说明了图片,`alt` 可以留空
如果没有,`alt` 应是对图片本身内容的描述,语句通顺。不应过长,更不应堆砌关键字
width
和 height
用来声明图片的宽度和高度
width
和 height
应始终设置真实尺寸,不应该使用 HTML 属性来改变图片的大小类似于超链接,title
属性用来提供进一步的支持信息
alt
用于图片描述,title
用于进一步支持信息,比如点击放大设置图片的说明文字的方法如下:
alt
标签描述图片title
标签配合祖先标题描述图片省略该属性:这个元素与最近祖先的标题仍然是相关的,可以用作元素的提示信息
值为空字符串:这个元素与最近祖先的标题是不相关的,不应用于这个元素的提示信息
与 alt 同时存在,alt 用于图片描述,title 用于进一步支持信息,比如点击放大
<div>
和 <p>
组合<div>
<img>
<p>图片说明文字</p>
</div>
<figure>
和 <figcaption>
组合<figure>
<img>
<figcaption>图片说明文字</figcaption>
</figure>
指用 <img>
标签插入的图像,可以设置 alt
属性,提供备选文本,可以被屏幕阅读器、蜘蛛识别
指用 background-image
和其它 background-*
属性共同放置的图像。用来提升视觉效果,没有语义,不能提供备选文本,难以被屏幕阅读器、蜘蛛识别
如果图像对内容有意义,利于 SEO,提高可访问性,应使用 HTML 图像
如果图像对内容没意义,装饰作用,或者故意提高图片被采集、保存的难度,应使用 CSS 图像
使用算法定义,包含了图形和路径的定义,电脑可以根据这些定义计算出它们在屏幕上渲染时应该呈现的样子。SVG 格式可以让我们创造用于 Web 的精彩的矢量图形。
使用像素网格定义,包含了每个像素额位置和它的色彩信息。流行的位图格式包含 Bitmap( .bmp
)PNG( .png
)JPEG( .jpg
)和 GIF( .gi``f
)
矢量图通常体积更小,放大后,效果很好且清晰,透明无毛边。
位图通常体积较大,放大后,图片变得像素化,透明有毛边。
SVG,全称是 Scalable Vector Graphics,可缩放矢量图形,是用于描述二维的矢量图形,基于 XML 的标记语言,是基于文本由 W3C 自 1999 年起开始开发的开放网络标准
SVG 对比光栅图形的缺点:
由于上述原因,光栅图形更适合照片那样复杂精密的图像
十、如何在 HTML 中引入 SVG?
(1)方式一:使用 <img>
标签或设置 background: url()
或 background-image: url()
属性
设置 <img>
的 src
属性嵌入 SVG
优点:
alt
属性中提供的内置文本等效<a>
元素嵌套 <img>
使图像轻松成为超链接缺点:
从 SVG 文件调用的外部样式表不起作用
:focus
)(2)方式二:使用 <svg>
标签
在文本编辑器中打开 SVG 文件,复制 SVG 代码,并将其粘贴到 HTML 文档中
优点:
:focus
)和 CSS 动画的方法<a>
元素中,使其成为超链接缺点:
<foreignObject>
元素中包含回退,但支持 SVG 浏览器仍然会下载任何后备图像。需要考虑支持过时的浏览器,增加额外开销是否真的值得(3)方式三:使用 <iframe>
标签嵌入 SVG
不推荐,缺点:
<iframe>
支持回退机制切换 <iframe>
的 src
后,点浏览器后退按钮,<iframe>
回退,主页面不会回退
除非 SVG 和您当前的网页具有相同的 origin
否则不能在主页面上使用 JavaScript 来操纵 SVG
image-set
支持声明一组图像的地址,分辨率和类型 type 例如
background-image: image-set("1x.png" 1x, "2x.png" 2x, "3x.png" 3x)
* `media queries` 支持媒体查询
@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 264dpi) {
/* 高分辨率下,如 iPad 2 的背景图 */
background-image: url("3x.png")
}
添加 <meta>
标签,强制浏览器,特别是手机浏览器以设备宽度来加载网页
<meta name="viewport" content="width=device-width">
设置 srcset
属性,声明浏览器允许的图像集和每个图像的大小
格式:文件名 + 半角空格 + 图像自身宽度(以像素为单位,写作 w )
多张图像用英文半角逗号 , 分隔
sizes
属性,声明的设定媒体条件为真时最佳尺寸图像格式:媒体查询条件 + 半角空格 + 图像填充槽的宽度
多个媒体查询条件用英文半角逗号 , 分隔
槽的宽度支持固定值 px
em
或者相对于视口的长度 vw
不支持百分比
最后一个槽的宽度不设置媒体查询条件,当没有任何一个媒体条件为真时生效
查询设备宽度
检查 sizes
列表中媒体查询条件
找到第一个为真的条件对应槽的宽度
找到没有条件为真时对应槽的宽度
加载 srcset
列表中引用的最接近槽的宽度的图像
Chrome 总是优先加载已缓存的图像
分辨率切换:相同的尺寸,不同的分辨率
书写 CSS 属性,声明图像的显示宽度 width
设置 srcset 属性,格式:文件名 + 半角空格 + 像素密度描述符( x 符号)
根据当前设备的像素密度加载图像
美术设计:不同内容的图像
使用 <pictrue>
标签
包裹 <img>
标签作为默认值
包裹多个 <source>
标签
设置 <media>
属性,声明媒体查询条件
设置 srcset
属性,声明条件为真时显示图片。可以设置多张不同分辨率图像
可选设置 sizes
属性,声明的设定媒体条件为真时最佳尺寸图像
美术设计:不同格式的图像,优先使用现代图像格式,并兼容老浏览器
使用 <picture>
标签
包裹 <img>
标签作为默认值
设置 type
属性,声明文件类型(MIME Type)
设置 srcset
属性,声明条件为真时显示图片。可以设置多张不同分辨率图像
可选设置 sizes
属性,声明的设定媒体条件为真时最佳尺寸图像
图片会在主解析器加载和解析 JavaScript 之前预加载,用于加快页面加载速度
可以让浏览器自动选择最合适的图片预加载,无需等待 CSS 和 JavaScript 加载和解析
开启缓存的场景下,优先返回满足条件已被缓存的图片,进而节省流量,提高加载速度
使用浏览器的开发者工具可以调试响应式
相同图片,通过 DOM 检查工具,查看当前加载的图片宽度
通过 Network 面板,查看当前下载的图片地址
阅读量:1687
点赞量:0
收藏量:0