zoukankan      html  css  js  c++  java
  • SVG Sprite 使用Symbol元素制作ICON

    介绍

    SVG是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。之前写过两篇关于CSS icon在页面显示的博客,后来了解到现在大多数前端团队和项目都在使用SVG Sprite这种方式进行制作ICON和让ICON实现页面显现。

    SVG有什么优势和特点?

    SVG方法与这两种相比具有如下特点:

    • 支持多色图标了,不再受单色限制。
    • 通过一些技巧,支持像字体那样,通过font-size,color来调整样式。
    • 兼容性较差,支持 ie9+,及现代浏览器。
    • 浏览器渲染svg的性能一般,还不如png。

    使用方法和步骤

    在之前关于字体图标的三两事当中我们讲过了Unicode和Font class获取连接地址并进行字体设置的方法,我们回到阿里图标库,在筛选好了我们项目需要的图标并修改好他们的名称之后,这次选择symbol,并复制他的代码。

     
    选择Symbol


    第一步:拷贝项目下面生成的symbol代码到HTML文件head的<script></script>中://at.alicdn.com/t/font_732020_vyfui00rk3.js
    这里同样跟之前一样,要注意协议,最好直接在前面加上https。

    <script src="https://at.alicdn.com/t/font_732020_vyfui00rk3.js"></script>

    第二步:加入通用css代码(引入一次就行):

    <style type="text/css">
        .icon {
            1em; height: 1em;
           vertical-align: -0.15em;
           fill: currentColor;
           overflow: hidden;
        }
    </style>

    第三步:挑选相应图标并获取类名,应用于页面:
    例如我们要加入一个之前命名为icon-weixin1的微信图标,就在body中加入这段<svg></svg>

    <svg class="icon" aria-hidden="true">
        <use xlink:href="#icon-weixin1"></use>
    </svg>

    Demo

    代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <script src="https://at.alicdn.com/t/font_732020_vyfui00rk3.js"></script>
      <style type="text/css">
        .icon {
            1em; height: 1em;
           vertical-align: -0.15em;
           fill: currentColor;
           overflow: hidden;
        }
      </style>
      <title> css-sprite-demo-v2 </title>
    
    </head>
    <body>
      <svg class="icon" aria-hidden="true">
        <use xlink:href="#icon-weixin1"></use>
      </svg>
    
      <svg class="icon" aria-hidden="true">
        <use xlink:href="#icon-weixin2"></use>
      </svg>
      
      <svg class="icon">
        <use xlink:href="#icon-weibo1">333</use>
      </svg>
    
    </body>
    </html>

    预览效果:
    http://jsbin.com/qovicalote/edit?html,output

    我们可以清楚的看到及时ICON被怎样放大,都不会失真和出现锯齿。
  • 相关阅读:
    react.js 你应知道的9件事
    table的border-collapse属性与border-spacing属性
    深入理解 CSS变形 transform(3d)
    $ 的绑定事件
    保留两位小数
    数据库日期格式化
    javaScript对两个数组进行去重
    js中的原型链__proto__其实超简单!!
    JSON.parse()和JSON.stringify()应用理解
    Java Web 重归
  • 原文地址:https://www.cnblogs.com/evenyao/p/9264243.html
Copyright © 2011-2022 走看看