在Less中,似乎几乎不可能使用@font-face
选择器。当我尝试使用
font-family: my_font
以下是我尝试使用它的方法:
@font-face {
font-family: my_font;
src: url('http://contest-bg.net/lg.ttf');
}
p {
font-family: my_font, "Lucida Grande", sans-serif;
}
使用~"..."
时可以使用简单的转义,但无法提供有效的代码
有人成功地使用了它吗?
答案 0 :(得分:32)
您是否尝试将字体系列名称放在单引号中?以下工作对我来说很好。
@font-face {
font-family: 'cblockbold';
src: url('assets/fonts/creabbb_-webfont.eot');
src: url('assets/fonts/creabbb_-webfont.eot?#iefix') format('embedded-opentype'),
url('assets/fonts/creabbb_-webfont.woff') format('woff'),
url('assets/fonts/creabbb_-webfont.ttf') format('truetype'),
url('assets/fonts/creabbb_-webfont.svg#CreativeBlockBBBold') format('svg');
font-weight: normal;
font-style: normal;
}
要将字体用作mixin,请尝试:
.ffbasic() {
font-family: ff-basic-gothic-web-pro-1,ff-basic-gothic-web-pro-2, AppleGothic, "helvetica neue", Arial, sans-serif;
}
然后在样式声明中:
.your-class {
font-size: 14px;
.ffbasic();
}
答案 1 :(得分:5)
上述投票答复的另一个注释;确保你的mixin没有括号,以便在编译成CSS时解析它。
完整示例:
**在您的变量LESS文件中:**
//声明您可以在变量less files
中更改的字体路径@path-fonts: '../fonts';
**在你的Mixins LESS文件中:**
.font-names
{
@font-face {
font-family: 'open-sans-light';
src: url('@{path-fonts}/open-sans/OpenSans-Light-webfont.eot') format('enbedded-opentype'),
url('@{path-fonts}/open-sans/OpenSans-Light.ttf') format('truetype'),
url('@{path-fonts}/open-sans/OpenSans-Light-webfont.woff') format('woff'),
url('@{path-fonts}/open-sans/open-sans/OpenSans-Light-webfont.svg#open-sans-light') format('svg');
}
}
**在您的嵌套规则中LESS文件:**
@import 'your variables less file name';
@import 'your mixin less file name';
@font-face {
.font-names;
}
注意:“.font-names”定义后面没有()。
答案 2 :(得分:0)
我认为这是因为你错过了字体格式。哪个ttf
为truetype
,如果缺少或不正确,则可能无法加载字体。
@font-face {
font-family: "MyFont";
src: url("./my-font.ttf") format("truetype");
}
答案 3 :(得分:0)
我的 LESS 代码:
@fontName: 'FontName';
@fontWeights: 'Light', 'Medium', 'SemiBold', 'Bold', 'ExtraBold';
@fontWeightsNum: 300, 400, 500, 600, 700;
.fontFace(@indexPrefix: 1) when (@indexPrefix =< length(@fontWeights)) {
@fontWeight: extract(@fontWeights, @indexPrefix);
@fontWeightNum: extract(@fontWeightsNum, @indexPrefix);
@fontFullName: "@{fontName}-@{fontWeight}";
@fileName: "../fonts/@{fontFullName}";
@font-face {
font-family: @fontName;
font-weight: @fontWeightNum;
font-style: normal;
font-display: swap;
src: local('@{fontFullName}'),
url('@{fileName}.woff2') format("woff2"),
url('@{fileName}.woff') format("woff");
}
.fontFace(@indexPrefix + 1);
}
.fontFace();
@f: '@{fontName}', "Helvetica Neue", sans-serif;
获取:
@font-face{
font-family:FontName;
font-weight:300;
font-style:normal;
font-display:swap;
src:local('FontName-Light'),
url(../fonts/FontName-Light.woff2) format("woff2"),
url(../fonts/FontName-Light.woff) format("woff")
}
x5
你可以使用:
font: 300 16px @f;