为啥谷歌字体粗细不起作用?

Posted

技术标签:

【中文标题】为啥谷歌字体粗细不起作用?【英文标题】:Why is google font weight not working?为什么谷歌字体粗细不起作用? 【发布时间】:2016-11-04 08:22:48 【问题描述】:

我正在尝试将h1 更改为font-weight: 300。除非我这样做了:

.h1
    font-weight: 300;

什么都没发生!

所以为了测试其他文本元素的字体粗细,我将整个封装容器 container-fluid 设置为 font-weight: 200

.container-fluid
    font-family: 'Work Sans', sans-serif;
    font-weight: 200;

...只有几个元素改变了它们的font-weight(见这里:JFiddle)。其余的保持不变。

为什么会这样?如果有人可以告诉我如何更改h1 的字体粗细,将不胜感激!


如果相关,我正在使用 Chrome。但我也在 Safari 上运行了我的 JFiddle,结果是一样的。

我在 CSS 文件的顶部导入了我需要的所有字体粗细:

/*import custom font*/
@import 'http://fonts.googleapis.com/css?family=Work+Sans:100,200,300,400,500,600,700,800,900';

我尝试按照this post 的建议使用http:。没有改变任何东西。

【问题讨论】:

应该是h1 而不是.h1 【参考方案1】:

font-weight 属性在引导 css 文件中设置为 500 到以下元素:

.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6

如果你想设置一个元素的字体粗细,你需要一个比默认选择器(bootstrap)更具体的选择器。如果你例如写一个更具体的选择器,比如.container-fluid h1 font-weight: 100; ,你会看到它会影响元素。您甚至可以在 CSS 规则之后使用极不推荐的 !important 来覆盖更具体的 CSS 规则。

然而,用相同的字体粗细覆盖页面的所有样式是不合理的。通常,例如标题的字体粗细与常规文本不同。

编辑: 但是,在您的示例中,您可以简单地使用 h1 选择器来选择所有 <h1> 元素,而不是选择 .h1 类。你可能在那里犯了一个错误。如果选择器具有相同的特性,则 CSS 样式表的顺序是相关的。 bootstrap 的样式包含在您的自定义样式之前,因此您的自定义样式会覆盖 bootstrap 样式。

【讨论】:

实际上,只要 OP 的样式表在加载顺序中位于 bootstrap.css 之后,它就会以相同的特异性覆盖它。例如,在提供的小提琴中,I changed .h1 to h1 and added font-weight: 300; 和权重发生了变化。 你是对的,在他的问题中没有看到.。我会更正答案。【参考方案2】:

只需将您的 CSS 样式表放在 Bootstrap 样式表下即可。如果你使用 font-weightfont-style ,你也需要将它包含在你的 CSS 样式表中,否则它将不起作用。

h1

  font-family: 'Montserrat', sans-serif;
  font-weight: 900;
  font-style: italic;

【讨论】:

以上是关于为啥谷歌字体粗细不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

字体问题..不知道为啥它不起作用?

谷歌字体包在颤振中不起作用

为啥我的谷歌电子商务不起作用?

本地主机上的谷歌分析:为啥我的测试代码不起作用?

为啥我的字体在 Android Studio Preview 中显示,但在设备或模拟器上不起作用?

为啥 QMenu:hover 在 Qt Designer 中不起作用