2

我想为我的离线 Web 开发项目离线托管 Material Icons(我不会在部署的计算机上连接互联网)。从我的谷歌搜索中,我找到了这个 SO answer。但它不适合我。我的问题是如何使它工作。如何为我的离线项目离线托管材料设计图标?

我在此处附上了我的 SSCCE 项目的 .zip 文件,该文件重现了该问题

基本上我从这里下载了MaterialIcons-Regular.eot,MaterialIcons-Regular.ttfMaterialIcons-Regular.woff并将MaterialIcons-Regular.woff2它们放在我的项目目录中。

这是我的索引文件:

<!DOCTYPE html>

<html>

<head>
    <title>MaterializeTest</title>

    <link rel="stylesheet" href="material-fonts.css" />
    <link type="text/css" rel="stylesheet" href="materialize.min.css" />

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width; initial-scale=1"/>

    <script src="jquery.min.js"></script>
    <script src="materialize.min.js"></script>
</head>

<body>
    <a href="#!"><i class="material-icons">chevron_left</i></a>
</body>

</html>

这是CSS文件。

@font-face {
   font-family: 'Material Icons';
   font-style: normal;
   font-weight: 400;
   src: url(MaterialIcons-Regular.eot); /* For IE6-8 */
   src: local('Material Icons'),
        local('MaterialIcons-Regular'),
        url(MaterialIcons-Regular.woff2) format('woff2'),
        url(MaterialIcons-Regular.woff) format('woff'),
        url(MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}
4

3 回答 3

3

原始但重量轻的材料图标

这个轻量级存储库(https://www.npmjs.com/package/material-design-icons-iconfont)是大约 60MB 的原始存储库的一个分支,但这非常轻量级,因为从中删除了不必要的文件原始存储库。

如何安装?

步骤1:

// install via bower/npm
bower install material-design-icons-iconfont

npm install material-design-icons-iconfont

第2步:

// import or link
@import "~material-design-icons-iconfont/dist/material-design-icons.css";

<link rel="stylesheet" href="../node_modules/material-design-icons-iconfont/dist/material-design-icons.css">

如何使用?

<i class='material-icons'>done</i> // remember to add class `material-icons`

更多关于https://material.io/tools/icons/?style=baseline

于 2018-05-22T05:00:23.980 回答
2

添加图标的第一种方法如下:

  1. 将此文件的内容复制到您的自定义 css 文件(例如,material-fonts.css)https://fonts.googleapis.com/icon?family=Material+Icons

/* fallback */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/materialicons/v29/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2');
}

.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

  1. 从 src url 复制链接并将其放入浏览器中。它将下载文件。您需要将其文件放在保存第一个文件(material-fonts.css)的同一目录中。
  2. 在 material-fonts.css 文件中更新src: url()src: url(2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2) format('woff2');

第二个例子: 看起来你下载了错误的文件。您需要下载此目录并将其放入您的文件夹中,之前的文件必须删除。

您的 materialFontTest.php 应如下所示:

<!DOCTYPE html>

<html>

<head>
<title>MaterializeTest</title>

<link rel="stylesheet" href="material-icons.css" />

<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>

<script src="jquery.min.js"></script>
<script src="materialize.min.js"></script>
</head>

<body>
<a href="#!"><i class="material-icons">chevron_left</i></a>
</body>

</html>

于 2017-10-03T09:42:16.693 回答
1

我认为您从某个地方下载了错误的文件。这是您必须从以下位置下载正确字体的路径:https ://github.com/google/material-design-icons/tree/master/iconfont或使用我的 GH 存储库中已经为您工作的字体。

此外,您只需在 html (php) 文件中调用一个 css,如下所示:

<link rel="stylesheet" href="material-fonts.css" />

h, k

于 2017-10-03T09:52:26.823 回答