如何使用Google的字体更改Bootstrap默认字体系列?

use*_*129 48 html css fonts twitter-bootstrap

我正在创建一个博客站点,我想更改Bootstrap字体.在我的导入CSS标题中我添加了这个字体

<link href='http://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)

我如何使用它作为我的bootstrap默认字体?

小智 61

首先,你不能以这种方式将字体导入CSS.

您可以在HTML头中添加此代码:

<link href='http://fonts.googleapis.com/css?family=Oswald:400,300,700' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)

或者在CSS文件中导入它,如下所示:

@import url(http://fonts.googleapis.com/css?family=Oswald:400,300,700);
Run Code Online (Sandbox Code Playgroud)

然后在你的bootstrap.css中你可以编辑body的font-family或者添加一个新的:

body {
  font-family: 'Oswald', sans-serif !important;
}
Run Code Online (Sandbox Code Playgroud)

  • 这种方法忽略了 Bootstrap 4 使用的复杂主题方法:https://getbootstrap.com/docs/4.4/getting-started/theming/ (3认同)
  • @DiginDominic 这些是[字体粗细](https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight)。最好只包含计划使用的权重。 (2认同)

Nel*_*mel 44

如果您使用Sass,则定义了Bootstrap变量!default,其中您将找到字体系列.您可以.scss在包含Bootstrap Sass文件之前在您自己的文件中设置变量,并且!default不会覆盖您的.以下是对!default工作原理的一个很好的解释:https://robots.thoughtbot.com/sass-default.

这是一个未经测试的例子,使用Bootstrap 4,npm,Gulp,gulp -sassgulp-cssmin来告诉你如何将它连接在一起.

的package.json

{
  "devDependencies": {
    "bootstrap": "4.0.0-alpha.6",
    "gulp": "3.9.1",
    "gulp-sass": "3.1.0",
    "gulp-cssmin": "0.2.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

mysite.scss

@import "./myvariables";

// Bootstrap
@import "bootstrap/scss/variables";
// ... need to include other bootstrap files here.  Check node_modules\bootstrap\scss\bootstrap.scss for a list
Run Code Online (Sandbox Code Playgroud)

_myvariables.scss

// For a list of Bootstrap variables you can override, look at node_modules\bootstrap\scss\_variables.scss

// These are the defaults, but you can override any values
$font-family-sans-serif: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default;
$font-family-serif:      Georgia, "Times New Roman", Times, serif !default;
$font-family-monospace:  Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
$font-family-base:       $font-family-sans-serif !default;
Run Code Online (Sandbox Code Playgroud)

gulpfile.js

var gulp = require("gulp"),
    sass = require("gulp-sass"),
    cssmin = require("gulp-cssmin");

gulp.task("transpile:sass", function() {
    return gulp.src("./mysite.scss")
        .pipe(sass({ includePaths: "./node_modules" }).on("error", sass.logError))
        .pipe(cssmin())
        .pipe(gulp.dest("./css/"));
});
Run Code Online (Sandbox Code Playgroud)

的index.html

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="mysite.css" />
    </head>
    <body>
        ...
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案.Bootstrap精确地构建了这个功能,这样您就不必破解他们的代码,然后在几年后升级时丢失所有更新.阅读此内容的任何人都会忽略编辑源代码的答案! (5认同)
  • @DoubleA:已经有几年了,我沿途学到了一些东西.你激励我扩展我的答案,所以希望它现在更有用. (2认同)

pun*_*ist 30

我认为最好和最干净的方法是获得自定义下载引导程序.

http://getbootstrap.com/customize/

然后,您可以更改排版中的字体默认值(在该链接中).然后,这会为您提供一个.Less文件,您可以稍后对默认值进行进一步更改.

  • 我会创建一个覆盖css文件,而不是下载自定义引导程序...这样你的引导程序很容易升级到未来的开发人员. (23认同)
  • 能告诉我为什么这不是一个有效的解决方案? (5认同)
  • 您可以设置变量,然后导入引导程序以覆盖引导程序默认值。例如`$primary:紫色;$二级:一枝黄花;$危险:蓝色;@import“node_modules/bootstrap/scss/bootstrap”;` (2认同)

Ali*_*ani 16

如果你有一个custom.css文件,那就做一些像:

font-family: "Oswald", Helvetica, Arial, sans-serif!important;
Run Code Online (Sandbox Code Playgroud)


小智 13

此页面上的大多数答案似乎都建议自定义引导变量。

然而,对于 Bootstrap 5 来说,首选方法似乎是使用 CSS 变量。https://getbootstrap.com/docs/5.1/customize/css-variables/

例如,body font-family 在 _reboot.scss 中设置,以使用在 _root.scss 中设置的 CSS 变量 bs-body-font-family。所以你可以重新定义这个CSS变量:

body { --bs-body-font-family: 'YOUR GOOGLE FONT'; }


Car*_*oto 9

使用引导5 SASS

使用$font-family-base$font-size-base$line-height-base属性作为应用于“正文”的排版基础。

https://getbootstrap.com/docs/5.0/content/typography/


Nic*_*lai 5

另一种方法是下载源代码,然后更改以下的vaiablesvariables.less

@font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif;
@font-family-serif:       Georgia, "Times New Roman", Times, serif;
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
@font-family-base:        @font-family-sans-serif;
Run Code Online (Sandbox Code Playgroud)

然后将其编译为.css文件