使用特殊font字体
1、使用css引入字体文件
目录结构
代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> @font-face { font-family: "AlibabaPuHuiTiR"; src: url("./font/Alibaba-PuHuiTi-Regular.otf") format("truetype"); } @font-face { font-family: "PingFangSC-Regular"; src: url("./PingFang Regular.otf") format("truetype"); } @font-face { font-family: "PingFang SC"; src: url("./font/PingFang Medium.otf") format("truetype"); } </style> </head> <body> <p style="font-family: 'AlibabaPuHuiTiR'">阿里巴巴普惠字体Regular测试</p> <p style="font-family: 'PingFangSC-Regular'">平方字体Regular测试</p> <p style="font-family: 'PingFang SC'">平方字体测试</p> </body> </html>
格式
internet Explorer 9, Firefox, Opera,Chrome, 和 Safari支持@font-face 规则.
但是, Internet Explorer 9 只支持 .eot 类型的字体, Firefox, Chrome, Safari, 和 Opera 支持 .ttf 与.otf 两种类型字体.
注意: Internet Explorer 8 及更早IE版本不支持@font-face 规则.
2、特殊情况配置webpack
// webpack打包字体文件问题 config.module .rule('font-ttf') // .test(/\.(woff2?|eot|ttf|otf|ttc)(\?.*)?$/) .test(/\.(ttc)(\?.*)?$/) .use('url-loader') .loader('url-loader') .options({ limit: 20000, name: 'fonts/[name]-[hash:7].[ext]', //`fonts/[name]-[hash].[ext]`, outputPath: 'fonts/', esModule: false }) .end();
1、此处.ttc文件使用url-loader加载,
2、其他类型字体文件(woff、eot、otf、ttf)webpack内置有loader,使用url-loader加载会破坏字体文件格式,导致浏览器解码失败,字体文件不生效。
2、其他类型字体文件(woff、eot、otf、ttf)webpack内置有loader,使用url-loader加载会破坏字体文件格式,导致浏览器解码失败,字体文件不生效。
vue-cli默认配置 路径node_modules/@vue/cli-service/lib/config/base.js
webpackConfig.module .rule('fonts') .test(/\.(woff2?|eot|ttf|otf)(\?.*)?$/i) .use('url-loader') .loader(require.resolve('url-loader')) .options(genUrlLoaderOptions('fonts'))