8

我正在使用 Bootstrap 构建项目的前端,我希望使用 3.0.0 中的Glyphicons而不是通常的文本。我该怎么做?

熟悉Holder.js的人都知道,JS 基本上是在客户端创建占位符图像。这有有用的带宽节省应用程序,因为您只需要下载脚本的重量(大约 4Kb)并让客户端的机器生成图像。

我想将 Glyphicons 与 holder.js 结合起来,以即时生成大型高质量图标。

使用 Bootstrap 调用 Glyphicon 很简单,如下所示:

<span class="glyphicon glyphicon-user"></span>

使用 holder.js 调用带有“Hello World”文本的动态图像如下:

<img data-src="holder.js/200x200/text:Hello World">

我了解 Bootstrap CSS 将 Glyphicon 类定义为字体,然后使用伪前元素来调用辅助类定义的特定字符。见下文:

.glyphicon {
    position: relative;
    top: 1px;
    display: inline-block;
    font-family: 'Glyphicons Halflings';
    -webkit-font-smoothing: antialiased;
    font-style: normal;
    font-weight: normal;
    line-height: 1;
}

.glyphicon-user:before {
    content: "\e008";
}

如何轻松地将正确字体的特定字形图标字符传递给holder.js,以输出图像图标?

4

3 回答 3

12

好的,所以这并没有引起任何人的兴趣。但我为自己解决了这个问题,认为与社区分享我的解决方案是一种很好的礼仪。

我必须做两件事。在我意识到 holder.js 将 JavaScript 画布绘制解析为 png 图像文件后,问题不再是“holder.js”问题,而更多的是纯 JS 和网络字体/字体问题。

第一件事:我必须明确告诉系统 Glyphicons 是字体以及我所指的字体。我使用以下 CSS 做到了这一点:

@font-face {
            font-family: 'Glyphicons Halflings';
            font-style: normal;
            font-weight: normal;
            src: local('Glyphicons Halflings'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype');
        }

第二:一旦浏览器知道我正在使用的字体的名称、位置和类型,我就可以开始使用它将 unicode 字符传递给 JS 画布对象。Holder.js 有一个设置 Var,其中包含一个“主题”数组,我在数组中添加了以下自定义主题:

"blueGlyph": {
        background: "#3a87ad",
        foreground: "#ffffff",
        size: 128,
        font:"Glyphicons Halflings"
    }

第三:现在我所要做的就是将 unicode 字符传递给 JS 脚本,它会即时生成图标图像。HTML 如下所示:

<img src="data:image/png;base64," data-src="holder.js/140x140/text:&#xe093;/blueGlyph">

其中产生了以下动态生成的图像:

在此处输入图像描述

选择和传递正确格式的 unicode 字符以便解释和绘制的关键是使用 HTML 方法传递 unicode 字符。即 &#x*{UNICODE HERE}*; . 或“” 按照上面的例子。

如果您想弄乱它,这就是小提琴。

于 2013-10-09T12:46:12.137 回答
2

我一直在网上搜索,但没有找到任何解决方案。正如 imsky 所说,这是一个“矩形”(缺少字符)。所以我尝试创建自己的解决方案,但这不是使用 holder.js 创建图像

<div class="col-xs-6 col-md-3">
   <a href="#" class="thumbnail">
       <span class="big-icon glyphicon glyphicon-glass"></span>
   </a>
</div>

然后是 CSS 样式:

<style>
.big-icon{
   margin:10px;
   font-size:100px;
}
.thumbnail{
   text-align:center;
}
</style>

结果如下:
在此处输入图像描述


但我仍在寻找解决方案:如何在 Holder.js 图像中使用 Bootstrap Glyphicons。任何帮助将不胜感激。

谢谢

于 2014-07-18T15:21:48.847 回答
-1

但是,当解决方案已经可用时,为什么您会如此困惑。只需删除所有与 holder.js 相关的更改并回到基础,只需将这些行放在文档末尾即可查看更改......

 $(function() {
        $('img').each(function() {
            var img = $(this);
            img.error(function() {
                img.replaceWith('<span class="glyphicon glyphicon-user" style=" background-color: #eee;  font-size: 100pt"></span>');
            });
        });
    });

如果需要更多帮助可以发邮件给我ranjeet1985@gmail.com

于 2014-12-20T13:58:30.287 回答