如何协调 Font-Awesome 和 Material Design 图标字体?

Posted

技术标签:

【中文标题】如何协调 Font-Awesome 和 Material Design 图标字体?【英文标题】:How to reconcile Font-Awesome and Material Design icon fonts? 【发布时间】:2015-10-05 00:30:47 【问题描述】:

有没有人有一个好的样式表 sn-p 可以让 FontAwesome 和 Material-Design icon font 在空间上很好地协同工作 - 让 Material-Design 图标在一个主要是 FontAwesome 的网站上表现得很好?样式、基线、宽度是不同的——也许更多。库存的“material-icons” CSS 类将字体大小固定为 24 像素。此外,Material-Design 图标的有效基线远高于文本基线。

到目前为止,我已经修补了 Google 的“material-icons”CSS 类:


    font-size: 150%;
    transform: translate(-10%,20%);

Material-Design 图标也比 Font-Awesome 更宽 - 我还没有决定如何解决这个问题。我没有使用很多图标 - 我没有尝试过的图标可能会有更多问题。

【问题讨论】:

我认为这个问题主要是基于意见的,因为它目前是写的。您或多或少会问“我怎样才能使这些图标看起来不错?”。我建议您编辑您的问题以提出更客观可回答的问题,例如“我如何修改材料图标集以具有与 fontawesome 相同的基线?”如果可能,请提供一些图片。否则,这个问题可能会被关闭。 从设计的角度来看,它们在一起看起来不好看是有原因的。 material design icons are designed using a very strict set of rules,而 fontawesome 的设计决策在许多情况下直接与规范的材料设计指南相冲突。 @WoodrowBarlow - 我摆脱了抱怨并坚持事实。我试图故意让这个问题比询问“我用什么 CSS 标签来做 x?”更广泛。 - 无需浪费读者时间! 在更多人投票关闭此“主要基于意见”之前,您可能会考虑某人的上下文,该人的应用程序已经设计有 FontAwesome 图标,并且只想填补一些空白或替换一些基于字体的 PNG 图标,它们不在 FontAwesome 中。这不是关于哪种字体更好的意见 - 这只是简单的实用主义。 【参考方案1】:

我将以下代码用于导航栏、按钮、井、手风琴、表单和其他一些地方,根据您的需要进行更改(您可能希望它更大或更厚)

.material-icons 
  font: normal normal normal 16px/1 'Material Icons';
  display: inline-block;
  transform: translateY(10%);
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';

【讨论】:

【参考方案2】:

更好的使用

font-size: 115%;
vertical-align: text-bottom;

当你使用大于 1 的 line-height 时,转换会产生问题

【讨论】:

【参考方案3】:

我有两种字体完全相同的问题,只是根本不能很好地一起玩!

无论我尝试什么,我都无法使用 CSS 解决此问题 - 每个建议一开始都有效,但在使用不同的字体大小等时失败了。

我与 CSS 最接近的是:

.material-icons:before 
  position: relative;
  top: 0.135em;

最后,我使用字体锻造来编辑实际的字体基线,现在它可以工作了。

我还将字体重新映射到与 Font Awesome 相同的结构中,而不是:

<i class="material-icons">alarm_on</i>

我可以的

<i class="md md-fw md-alarm-on"></i>

不是我知道的字体的使用方式和个人喜好,但我更喜欢这种使用图标字体的方式!

【讨论】:

以上是关于如何协调 Font-Awesome 和 Material Design 图标字体?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 node.js 中导入 font-awesome 以在 react.js 中使用?

如何在rails应用程序的tailwind css中导入font-awesome [关闭]

如何在 Bootstrap 4 中将 Font-Awesome 图标与一行文本垂直对齐?

如何应用Font Awesome矢量字体图标

vue 中引入font-awesome

无法使用 Webpack 3 正确加载 sass 和 font-awesome