样式冲突造成svg图标显示不完整

问题:如下图所示,svg格式的奖牌图形未显示完整

有误的样式
设计原稿


定位:查看svg源码,发现svg部分未显示

svg代码

原因:此前为了实现底部导航图标的复用,全局重置了path的fill属性

全局重置

解决:给底部导航图标的样式重置加作用域限制

加了作用域限制的样式重置

结论:当遇到SVG图形未显示完整时,请排查是否有样式冲突


【用SVG格式的原因】

1、不用做N倍切图,自适应大小不模糊

2、图标可以复用,减小文件大小

3、可以快速承接设计稿(设计师已经将设计稿共享在zplin上,相应的icon已经切好,直接下载可用)

【复用场景】页面底部导航栏的选中与否,差别只有颜色不一样

底部导航栏


【复用技术方案】

1、用webpack的svg-sprite-loader将同一个文件夹下全部图标的svg文件生成symbol元素,如下图:

经svg-sprite-loader生成的symbols

2、使用svg的use元素引用symbol元素

使用use引用symbol

CSS代码

最终效果

【复用与否的差别】

1、需要的文件数

未复用
复用后

2、元素节点数

未复用

复用后
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,055评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,558评论 4 61
  • 午睡时做了一个短小的梦。 我梦见大片大片的麦田地,麦苗青葱旺盛。 麦田旁边有新建的超市,还有新的楼房在建。宽敞崭新...
    初夏的时光阅读 2,325评论 4 5
  • 年少且听李宗盛,且听且懂 01 开始听李宗盛的歌,还是在我大三准备考研的时候。 为了能够把自己的注意力长时间集中在...
    陌上于归阅读 3,868评论 2 9
  • J2SE基础 九种基本数据类型的大小,以及他们的封装类。Java基本类型共有八种,基本类型可以分为三类,字符类型c...
    Sky_walker阅读 1,832评论 0 2

友情链接更多精彩内容