JS等效链接到字体文件

时间:2017-03-30 05:02:51

标签: javascript d3.js fonts

我已经使用css以传统方式链接到字体文件,如下所示:

How can I use Google's Roboto font on a website?

然而,在某些情况下我可能需要更复杂的样式规则,在这种情况下我使用javascript。奇怪的是谷歌搜索只返回了css字体链接方法,但我怀疑js有办法。我得到了:

d3.select('body').append('text').text('my text')
    .attr('font-family', 'Roboto')
    .attr('src', 'url(my_url) format('truetype')');

但是我不确定它是否应该是这样的。鉴于它不起作用,我的预感是否定的。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

只要您在文档中引用您的Google字体,如下所示:

<link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet">

您需要做的就是在选择font-family时指定名称以将其应用于任何文本元素:

d3.select('body').append('text').text('my text')
    .style('font-family', "'Montserrat', sans-serif");

小提琴 - https://jsfiddle.net/7jLgpx68/

对于.ttf个文件,我建议先在css中设置它,如下所示:

@font-face {
  font-family: "Super Sans";
  src: url(#url_to_ttf);
}

然后在你的js代码中使用它,如

d3.select('body').append('text').text('my text')
    .style('font-family', "Super Sans");

答案 1 :(得分:-1)

CSS是迄今为止最简单的方法。您可以随时使用JS操作包含使用不同类或id的文本的标记。