MUI实现自定义图标

╰半橙微兮° 2024-04-18 05:12 211阅读 0赞

引言

在日常生活中,我们对图的感知能力总要强于对字的感知能力,所以在开发过程中适当的在应用里添加一些小巧又漂亮的图标是很有必要的,这可以轻轻松松的提高一大截的用户体验。笔者喜欢用MUI来做混合开发,可是在使用的过程中发现MUI自带的小图标并不能满足日常的开发,所以留下此笔记希望能帮助到遇到同样问题的小伙伴们。

MUI自带的图标

传送门:https://dev.dcloud.net.cn/mui/ui/#icon

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x3cUJyZWxs_size_16_color_FFFFFF_t_70

实现效果

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x3cUJyZWxs_size_16_color_FFFFFF_t_70 1

由上可知,要想使用MUI自带图标是无法实现这种效果的,所以我们得自己动手了。

使用阿里矢量图拓展图标

步骤1:到阿里矢量图挑选喜欢的图标并加如购物车

传送门:https://www.iconfont.cn/

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x3cUJyZWxs_size_16_color_FFFFFF_t_70 2

步骤2:从购物车了下载代码

20190903123940931.png

步骤3:解压并打开demo_index.html,里面介绍了三种引入图标的方式

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x3cUJyZWxs_size_16_color_FFFFFF_t_70 3

步骤4:选择其中一种方式,并把需要的资源导入到自己的项目中,笔者希望图标是有颜色的,所以用Symbol

4.1:引入项目下面生成的 symbol 代码:

  1. <script src="./iconfont.js"></script>

4.2:加入通用 CSS 代码(引入一次就行):

  1. <style>
  2. .icon {
  3. width: 1em;
  4. height: 1em;
  5. vertical-align: -0.15em;
  6. fill: currentColor;
  7. overflow: hidden;
  8. }
  9. </style>

4.3:挑选相应图标并获取类名,应用于页面:

  1. <svg class="icon" aria-hidden="true">
  2. <use xlink:href="#icon-xxx"></use>
  3. </svg>

到此,我们就成功的引入图标了,之后可以使用CSS来控制图标的大小等,下面我们来看一个小案例

案例源码:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  6. <title></title>
  7. <script src="js/mui.min.js"></script>
  8. <link href="css/mui.min.css" rel="stylesheet" />
  9. <link rel="stylesheet" type="text/css" href="css/iconfont.css" />
  10. <script src="js/iconfont.js" type="text/javascript" charset="utf-8"></script>
  11. <script type="text/javascript" charset="utf-8">
  12. mui.init();
  13. </script>
  14. <style type="text/css">
  15. .icon {
  16. width: 1.5em;
  17. height: 1.5em;
  18. vertical-align: -0.4em;
  19. overflow: hidden;
  20. }
  21. .my-icon {
  22. float: left;
  23. width: 20%;
  24. text-align: center;
  25. background: white;
  26. padding-top: 10px;
  27. }
  28. .top-icon {
  29. margin-top: 10px;
  30. }
  31. .mui-bar-nav {
  32. background: linear-gradient(to right, #ff8370, #ff5151);
  33. }
  34. .mui-title{
  35. color: white;
  36. }
  37. .mui-active > .icon-title {
  38. color: red !important;
  39. }
  40. .icon-title {
  41. margin-bottom: 0;
  42. font-size: 0.5em;
  43. }
  44. .mui-tab-item{
  45. padding-top: 5px;
  46. }
  47. </style>
  48. </head>
  49. <body>
  50. <header class="mui-bar mui-bar-nav">
  51. <h1 class="mui-title">自定义图标</h1>
  52. </header>
  53. <nav class="mui-bar mui-bar-tab">
  54. <a class="mui-tab-item mui-active">
  55. <svg class="icon" aria-hidden="true">
  56. <use xlink:href="#icon-shouye"></use>
  57. </svg>
  58. <p class="icon-title">首页</p>
  59. </a>
  60. <a class="mui-tab-item">
  61. <svg class="icon" aria-hidden="true">
  62. <use xlink:href="#icon-sousuo"></use>
  63. </svg>
  64. <p class="icon-title">搜索</p>
  65. </a>
  66. <a class="mui-tab-item">
  67. <svg class="icon" aria-hidden="true">
  68. <use xlink:href="#icon-xingxing1"></use>
  69. </svg>
  70. <p class="icon-title">推荐</p>
  71. </a>
  72. <a class="mui-tab-item">
  73. <svg class="icon" aria-hidden="true">
  74. <use xlink:href="#icon-home"></use>
  75. </svg>
  76. <p class="icon-title">我的</p>
  77. </a>
  78. </nav>
  79. <div class="mui-content">
  80. <div class="top-icon">
  81. <div class="my-icon">
  82. <svg class="icon" aria-hidden="true">
  83. <use xlink:href="#icon-apple-and-pear"></use>
  84. </svg>
  85. <p>美食</p>
  86. </div>
  87. <div class="my-icon">
  88. <svg class="icon" aria-hidden="true">
  89. <use xlink:href="#icon-nanzhuang"></use>
  90. </svg>
  91. <p>男装</p>
  92. </div>
  93. <div class="my-icon">
  94. <svg class="icon" aria-hidden="true">
  95. <use xlink:href="#icon-meizhuang"></use>
  96. </svg>
  97. <p>美妆</p>
  98. </div>
  99. <div class="my-icon">
  100. <svg class="icon" aria-hidden="true">
  101. <use xlink:href="#icon-nvzhuang"></use>
  102. </svg>
  103. <p>女装</p>
  104. </div>
  105. <div class="my-icon">
  106. <svg class="icon" aria-hidden="true">
  107. <use xlink:href="#icon-canju"></use>
  108. </svg>
  109. <p>母婴</p>
  110. </div>
  111. </div>
  112. </div>
  113. </body>
  114. </html>

GitHub:

https://github.com/lwqbrell/mui_icon

发表评论

表情:
评论列表 (有 0 条评论,211人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MUI实现定义图标

    引言 在日常生活中,我们对图的感知能力总要强于对字的感知能力,所以在开发过程中适当的在应用里添加一些小巧又漂亮的图标是很有必要的,这可以轻轻松松的提高一大截的用户体验...

    相关 MUI的字体图标

    简介 mui默认提供了手机App开发常用的字体图标,不是图片的形式引入,而是字体图标,可以将icon看做是一个普通的文字,好处是可以直接通过CSS样式控制它的颜色和大小等

    相关 mui定义图标

    研究了一下自定义图标,不仅仅可以在h5里面用,还可以在小程序或者别的开发环境里面用。 首先找到图标源,我自己找的是阿里巴巴矢量图库。 ![watermark_type_Zm