【问题标题】:New Material Design Icon Themes - setting color新材料设计图标主题 - 设置颜色
【发布时间】:2019-08-12 04:12:26
【问题描述】:

我正在寻找一种便携式解决方案来为某些图标着色。下面描述的我最初的问题在我的 MacBook 上的 Chrome 和 Firefox 中出现,在 Safari 中,颜色按预期工作。评论员报告说,这些颜色在 Windows 上的 Chrome 中可以正常工作。

我有一个使用 Material Design 图标的简单 jQuery Web 应用程序。我可以使用 CSS 设置图标的颜色,一切都很好。但是对于一些图标,特别是文件夹,新的 Outlined 主题更适合我的应用程序,而且似乎 CSS 颜色没有效果。

有一个很好的设置图标颜色的例子here,如果我把这个例子改成这样:

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500|Material+Icons|Material+Icons+Outlined|Material+Icons+Two+Tone|Material+Icons+Round|Material+Icons+Sharp">
<title>Change Color of Google Material Design Icons Example</title>

<i class="material-icons">folder</i>
<i class="material-icons" style="font-size:40px;color:green">folder</i>
<i class="material-icons-outlined" style="font-size:50px;color:blue">folder</i>

在我的 MacBook 上的所有浏览器上,我看到标准材料图标文件夹采用绿色。在 Safari 上,我看到了预期的结果:文件夹的轮廓是蓝色的。但是在 Chrome 和 Firefox 上,轮廓仍然是黑色的。这种行为模式适用于扩展主题大纲、双音等中的所有图标。

请提出建议。

【问题讨论】:

  • 已转换为 sn-p - 它似乎与您提供的代码所期望的一样。即你告诉它用蓝色画一个大的轮廓文件夹图标,这正是它所做的。目前尚不清楚您是否希望蓝色为绿色,或者您是否希望outlined 图标被蓝色填充。也许它在其他浏览器/移动设备上有所不同?
  • 我在概述的情况下看不到蓝色。我在 Mac 上的 Chrome 和 Firefox 中都看到了黑色轮廓。您在哪个平台上看到蓝色轮廓?
  • Windows 10、Chrome。虽然它更像是紫色而不是蓝色。尝试不同的颜色 - 例如,我尝试了绿色的轮廓,它也有效。
  • 所以,一些平台依赖。 (感谢您转换为 sn-p。)

标签: jquery css icons material-design


【解决方案1】:

我知道这是一个较旧的帖子,但也许有些人仍在寻找答案。

轮廓图标似乎与 css 颜色设置一起按预期工作:

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons|Material+Icons+Outlined|Material+Icons+Round|Material+Icons+Two+Tone|Material+Icons+Sharp">

<i class="material-icons-outlined" style="color:green">home</i>

设置双色:

如上所述,您可以使用color css 键,但材料Two-tone 主题似乎有问题;-)

使用自定义 css 过滤器在几个有角材料 github issue 之一中描述了一种解决方法。这个自定义过滤器可以生成here

例如:

HTML:

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons|Material+Icons+Outlined|Material+Icons+Round|Material+Icons+Two+Tone|Material+Icons+Sharp">

<i class="material-icons-two-tone red">home</i>

css:

.red {
filter: invert(8%) sepia(94%) saturate(4590%) hue-rotate(358deg) brightness(101%) contrast(112%);
}

附件:

【讨论】:

  • 这不允许您轻松设置轮廓和填充的颜色。它只是改变了整个图标的色调。不是真正的解决方案。
【解决方案2】:

由于材质图标是 svg,您需要访问子 svg 元素,并操作 svg 值。它们不受color 属性的影响

.material-icons svg {
  fill: white; // The filling
  stroke: black; // the outline - this depends on how the svg is drawn
}

【讨论】:

  • 我会按照你的建议进行实验,但请注意,我上面的 sn-p 确实显示标准 Material Design 文件夹直接受到绿色的影响。
猜你喜欢
  • 2015-08-13
  • 2019-02-28
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 2015-08-15
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多