【发布时间】:2018-03-06 12:43:49
【问题描述】:
我为我的应用程序定义了自定义字体,因为默认情况下,像“č”这样的字符确实使用 Arial 字体呈现,而应用程序的其余部分使用“Open Sans Light”呈现。在styles.scss:
@include v-font('LocalFont', '../../../../mytheme/fonts/open-sans-v15-latin-ext_latin-300');
...
...
从呈现的网页中,我看到使用的字体系列取决于styles.css:
.mytheme.v-app, .mytheme.v-app-loading {
font: 300 16px/1.55 "Open Sans", sans-serif;
但我认为没有办法影响它。在mytheme.scss 内@mixin mytheme { 我试图定义:
.v-app, .v-app-loading {
font: 300 16px/1.55 LocalFont, sans-serif;
}
.mytheme.v-app, .mytheme.v-app-loading {
font: 300 16px/1.55 LocalFont, sans-serif;
}
但在styles.css 中,它的构建方式为:
.mytheme .v-app, .mytheme .v-app-loading {
font: 300 16px/1.55 LocalFont, sans-serif;
}
.mytheme .mytheme.v-app, .mytheme .mytheme.v-app-loading {
font: 300 16px/1.55 LocalFont, sans-serif;
}
这不会使用我的本地字体(除非我在 .mytheme 之后删除空格)。
有没有办法影响.mytheme.v-app, .mytheme.v-app-loading { 中的字体系列?
作为一种解决方法,我在我的主题中定义了这个:
.v-ui{
font: 300 16px/1.55 LocalFont, sans-serif;
}
.v-tooltip{
font: 300 16px/1.55 LocalFont, sans-serif;
}
.v-window{
font: 300 16px/1.55 LocalFont, sans-serif;
}
.v-Notification{
font: 300 16px/1.55 LocalFont, sans-serif;
}
这可能涵盖了所有情况,但我不确定 vaadin 是否可以添加元素的直接子元素 v-app css 类并使用其他 css 类。 此解决方法是否适用于所有情况 - vaadin 是否使用其他 css 类,它们是 v-app 类的直接子类?
注意事项:
Vaadin documentation 仅声明在我的样式中使用字体系列。
我正在使用服务器字体,因为应用程序位于代理后面,并且使用 Web 字体来呈现“č”之类的字符失败,因为某些客户端无法访问应用程序服务器之外。
最初我尝试在styles.scss 中定义我的字体,例如:
@include v-font('Open Sans', '../../../../mytheme/fonts/open-sans-v15-latin-ext_latin-300');
...
@include v-font('Open Sans Light', '../../../../mytheme/fonts/open-sans-v15-latin-ext_latin-300');
...
但它没有使用我的字体来渲染“č”,不知道为什么。
【问题讨论】: