fontClass 支持字体的样式定义,但不支持多色字体,兼容性良好,当要替换图标时,只需要修改 class 里面的 Unicode 引用。只需要 html 和 csss。
<link rel="stylesheet" href="./iconfont.css">
<span class="iconfont icon-xxx"></span>
<!-- 示例 -->
<h2>FontClass使用</h2>
<p><span class="iconfont icon-shouye"></span><span>首页</span></p>
<p><span class="iconfont icon-ziyuan"></span><span>购物车</span></p>
<p><span class="iconfont icon-gerenzhongxin"></span><span>个人中心</span></p>
<!--使用css定义样式-->
.iconfont { font-size: 30px; color: red; font-family: myFirstFont; font-weight:
bold; }
支持字体的样式定义,但不支持多色字体,兼容性最好,支持 IE6+,及所有现代浏览器。支持按字体的方式去动态调整图标大小,颜色等等。
引入以下文件:
注意需要将对应的文件引入,和注意修改引入文件时的路径。
@font-face {
font-family: "iconfont";
src: url("iconfont.eot");
src: url("iconfont.eot?#iefix") format("embedded-opentype"), url("iconfont.woff2")
format("woff2"), url("iconfont.woff") format("woff"), url("iconfont.ttf")
format("truetype"), url("iconfont.svg#iconfont") format("svg");
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
color: red;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
<span class="iconfont">3</span>
<!-- 示例 -->
<h2>Unicoded的使用</h2>
<p><span class="iconfont"></span><span>首页</span></p>
<p><span class="iconfont"></span><span>购物车</span></p>
<p><span class="iconfont"></span><span>个人中心</span></p>
<!-- 示例 -->
<h2>Unicoded的使用</h2>
<p><span class="iconfont icon-shouye"></span><span>首页</span></p>
<p><span class="iconfont icon-shouye"></span><span>购物车</span></p>
<p><span class="iconfont icon-personal"></span><span>个人中心</span></p>
支持多色图标了,通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。兼容性较差,支持 IE9+,及现代浏览器。浏览器渲染 SVG 的性能一般,还不如 png。
<script src="./iconfont.js"></script>
<style>
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-xxx"></use>
</svg>
<!-- 示例-->
<h2>Symbol的使用</h2>
<p>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-shouye"></use>
</svg>
<span>首页</span>
</p>
<p>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-ziyuan"></use>
</svg>
<span>购物车</span>
</p>
<p>
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-gerenzhongxin"></use>
</svg>
<span>个人中心</span>
</p>
<!--定义样式-->
.icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor;
overflow: hidden; font-size: 50px; color: red;<!--不生效-->
}
原因: 当从阿里图库中图标被添加至项目,如果编辑过项目图标的颜色或者图标本身是有颜色的,那么在通过 symbol 获取图标时会在 svg 的 path 中增加 fill 属性,导致无法更改颜色,如果需要动态修改颜色,需要从新添加该图标(本身图标无色),获取在 symbol 的 js 文件中程序删除 fill 属性。
解决办法:
:before/:after 是伪元素,fontawesome 是在伪元素的 content 加入不同的 Unicode 来渲染不同的图标的。
可以放在 content 里啊,直接放在 html 里的那是字符实体编码,比如
其中&#
是开头用以标明这是字符实体,x
表示这是十六进制,而 CSS 的 content 接受的也是 16 进制的 Unicode 编码,所以可以直接写 content: "\e7bb";
unicode:&#e61f; ====> 伪类 content :’\e61f’;
.box:before {
font-family: "iconfont" !important;
font-size: 16px;
color: red;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
content: "\e61f";
}