图标指南针软件

核心提示图标是网络上常用的元素。它们是通用的,可以立即识别,可以非常有吸引力,吸引注意力,并且提供了很好的用户体验。当我们在网上实现图标时,我们有很多选择: 图标精简表 图标字体内联 SVG作为图像元素的 SVG其中一些现在更常用,比如 SVG 元

图标是网络上常用的元素。它们是通用的,可立即识别的,可以非常吸引人,吸引注意力,并提供良好的用户体验。

当我们在线实现图标时,我们有许多选择:

图标简化表格

图标字体

内嵌SVG

作为图像元素的SVG

其中有一些是现在比较常用的,比如SVG元素和图标字体。在本文中,我们将深入研究在网页上实现图标的每种方法,看看哪种方法在性能、可访问性、样式选项和浏览器支持方面是最好的。

图标简化表格

我们通过将较小图像记录组合成较大的文件来创建图标向导表。我们需要使用CSS背景图像、背景大小和背景位置来显示sprite表中的图像。

图标精简 示例

我们可以使用SVG压缩表来保证图标在各种显示器上看起来很棒,并结合PNG压缩表作为老式浏览器的备份。我们可以使用Modernizr这样的Javascript库来检查用户的浏览器是否支持SVG,如果不支持就提供PNG回退。

让我们创建一个无障碍图标:

给我发电子邮件>

Spritessheet CSS示例:

。图标{ background-image:URL;背景-重复:不重复;显示:内嵌-块;宽度:64px身高:64px} .不-svg。图标{ background-image:URL;} .图标-电子邮件{ width:64px;身高:64px背景-位置:0px 0px}

让我们回顾一下使用图标向导表的优点和缺点。

优势:

添加图标的过程可以很容易地自动化。

图像优化技术可以减小简化表格文件的大小。

它在所有显示器上都能正常工作。

强大的浏览器支持

减少请求的数量

缺点:

不能开箱即用。可访问性要求手动添加额外的HTML元素。

糟糕的样式选项

图标的所有变体都需要作为单独的元素添加到spritessheet中。

如果多个用户同时添加新图标,就会发生冲突。

使用HTTP/2没有性能优势

工具:

Sprite Cow-在线spritesheet图像和CSS生成器

CSS-Lazy Sprite-Post CSS插件,用于自动生成向导表格图像和CSS

Gulp-svg-sprite-Gulp插件,用于自动生成spitessheet图像和CSS。

图标字体

我们可以生成包含图标的字体文件,而不是将图标图像文件合并成一个图像文件。浏览器将它们视为文本,并可以使用文本样式轻松定制它们。

有许多工具可以使生成图标字体文件和CSS文件变得容易和易于管理。生成的CSS文件可能如下所示:

@ font-face { font-family:' myIconFont ';src: url格式,url格式,url格式;字体粗细:正常;字体样式:正常;}。icon { font-family:' myIconFont ';说话:无;字体样式:正常;字体粗细:正常;字体变体:正常;文本转换:无;行高:1;-webkit-font-smoothing:抗锯齿;-moz-osx-font-smoothing:灰度;}。icon-email::before { content:“ e900”;}

我们可以使用类似的标签来创建可访问的图标:

给我发电子邮件>

让我们回顾一下使用字体图标的优点和缺点。

优势:

良好的优化选项

易于编辑和生成的各种工具

出色的浏览器支持

真的很好用很方便

缺点:

字体消除锯齿可能会导致图标渲染问题。

下载和加载字体文件时,不显示任何内容。

如果用户用特定的字体或样式重写,它可以很容易地被重写。

不能开箱即用。辅助功能需要手动添加。

工具:

管理和生成图标字体文件和CSS

管理和生成图标字体文件和CSS

图标-字体-生成器-NPM插件用于从SVG图标生成图标字体

内嵌SVG图标

我们可以直接在HTML文档中插入SVG数据,浏览器会解析并显示SVG元素,而不需要包含一些文件,也不需要使用CSS在标记中添加图标。内联SVG元素是高度可定制的,因为我们甚至可以设计单个SVG元素的样式。

让我们看看使用内联SVG的可访问图标是什么样子的:

示例标题解释此示例的详细说明

我们将标签by = "title id descid "与标题和desc SVG元素结合使用,使辅助设备可以访问这些元素。还需要注意的是,role = "presentation "应该用于SVG元素的图形部分,辅助设备应该忽略它。

让我们回顾一下使用内嵌SVG图标的优点和缺点。

优势:

加载HTML文档不需要额外的加载时间。

没有额外的HTTP请求。

良好的可访问性支持,不需要额外的HTML元素。

在各种屏幕上都很好看

在风格选择方面是最好的

缺点:

复杂的HTML文档标记

难以管理和维护。

图标不会被缓存。

一些旧的浏览器不受支持

注意:一些框架使得管理和维护图标更加容易。例如,Webpack可以将“/path/中所有导入的MyIcon转换为/MyIcon。SVG”转换为生产版本中的内联SVG。所以对于dev,我们有一个简单的易于维护的标签。

图像元素中的SVG

我们可以将图标保留为单独的文件,并使用 < img > HTML 元素将其包含在我们的标记中,而不是在 HTML 中使用整个 SVG 标记。这使我们能够拥有一个简单的、可维护的标记和较小的文件大小。我们也可以为图标使用元素的本地可访问性特性。我们可以将图标保存为一个单独的文件,并使用< img > HTML元素将它包含在我们的标记中,而不是在HTML中使用整个SVG标记。这使我们能够有一个简单和可维护的标签和一个较小的文件大小。我们也可以使用图标元素的本地可访问性特性。

让我们以这种方式创建一个可访问的图标:

Send me an email

我们可以使用srcset实现旧浏览器的PNG回退:

Send me an email

支持srcset的浏览器也支持SVG元素,它们会自动加载SVG图像。不支持的浏览器会加载回PNG。

让我们回顾一下在图像元素中使用SVG的优缺点。

优势:

简单标记

带有alt标签的内置简单易用选项

良好的浏览器支持

图像文件大小可以优化。

图像文件可以被缓存。

缺点:

缺乏风格选择

图标的每个变体都应该放在一个单独的文件中。

每个图标都需要一个服务器请求。

 
友情链接
鄂ICP备19019357号-22