Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 覆盖默认应用程序图标(SVG或Fonticon?)_Css_Angular_Svg_Sass_Building - Fatal编程技术网

Css 覆盖默认应用程序图标(SVG或Fonticon?)

Css 覆盖默认应用程序图标(SVG或Fonticon?),css,angular,svg,sass,building,Css,Angular,Svg,Sass,Building,我有一个应用程序,目前正在为我的应用程序中的所有图标(按钮等)使用iconmon,但我希望在为客户端参数化应用程序时,能够使图标易于更改 在这种情况下,最好的路线是什么 我曾经考虑过让客户机提供一个覆盖sass文件,该文件将导入他们自己的图标集(iconmoon等)并覆盖任何现有的类,但这感觉不“正确” 或者,我还可以将IConMon库导出为svg文件,并使用svg定义类作为背景图像。这将使客户端能够只提供新的svg文件,在构建过程中只覆盖默认的svg文件 所讨论的应用程序是Angular 6应

我有一个应用程序,目前正在为我的应用程序中的所有图标(按钮等)使用iconmon,但我希望在为客户端参数化应用程序时,能够使图标易于更改

在这种情况下,最好的路线是什么

我曾经考虑过让客户机提供一个覆盖sass文件,该文件将导入他们自己的图标集(iconmoon等)并覆盖任何现有的类,但这感觉不“正确”

或者,我还可以将IConMon库导出为svg文件,并使用svg定义类作为背景图像。这将使客户端能够只提供新的svg文件,在构建过程中只覆盖默认的svg文件

所讨论的应用程序是Angular 6应用程序,因此Angular CLI用于构建过程,文件替换由触发Angular CLI构建的java构建过程完成


编辑:这更像是SVG vs fonticons的一个参数。

首先,您不应该忘记,可能他们希望将其返回到默认值,如果您覆盖它们,这将很难实现

我将使用地图:它用于什么:图标名称:图标路径(原始):当前图标路径

然后,您可以进行一些简单的设计,从该地图中登记所有图标,并允许它们更改当前图标路径。如果他们点击“返回默认值”,你可以用原来的图标路径更改当前图标路径

关键是,在渲染时只需使用map,这样应用程序将更具模块性。

至于“最简单”(与“最佳”相反):您是否考虑过使用
字体系列的简单回退字符解析机制

@font-face { font-family: 'Icon Overrides'; (...)}
@font-face { font-family: 'Icon Defaults'; (...)}

.icon { font-family: "Icon Overrides", "Icon Defaults"; }
假设两个字体文件都有统一的图标↔ 代码点映射,您可以在第一种字体中重新定义一些(或全部)图标;未定义的字符将在第二个字符中查找。(您甚至可以对整个应用程序使用单一字体系列,如
html{font系列:“图标覆盖”、“图标默认值”、“基本文本字体”、“一些回退文本字体”等等),无衬线;}
,同样,只要图标字体使用sane映射到相应的Unicode点或使用专用区域



至于“字体是否比内联SVG更适合于图像处理”(即您要求的“最佳路线”),我会坚持当前的趋势:尽可能使用SVG,但讨论SVG在给定环境中的好处和可维护性对于这样一个简单的答案来说太广泛了。此外,问一些问题,如“您认为什么最适合X?”对于这个网站来说可能太模糊了。

谢谢你的回答,但是构建过程会为每个客户端提供不同的包。客户端无法在构建过程后更改任何图标,因为它们得到的只是一个war文件。我自己会更改图标。不过,你的解决方案取决于处理文件的方法。问题是:只有这样才能更容易地维护带有大量图标的大型应用程序,这些图标需要根据客户需求进行更换,并且在自动化(大型)构建过程中需要易于适应。