代码之家  ›  专栏  ›  技术社区  ›  Piro

如何在整个Vaadin 7应用程序中设置自定义字体

  •  4
  • Piro  · 技术社区  · 6 年前

    我为我的应用程序定义了自定义字体,因为默认情况下,像“č”这样的字符是用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;
    }
    

    但在 样式。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字体呈现字符(如“”)失败,因为某些客户端无法访问应用程序服务器外部。

    最初我尝试在中定义字体 样式。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');
    ...
    

    但它没有使用我的字体来呈现“č”,不知道为什么。

    2 回复  |  直到 6 年前
        1
  •  4
  •   Jay    6 年前

    所以如果您已调用主题: 我的主题

    在文件中: 我的主题。scss公司

    您需要在顶部添加文件: $v-font-family: "Open Sans", sans-serif;

    Here's a link to the other Valo Theme variables

        2
  •  1
  •   Basil Bourque    5 年前

    这个问题是关于旧版本的瓦丁。这里有一个答案为那些有同样需求的人在目前的瓦丁14。

    瓦丁流

    新一代的Vaadin版本10及更高版本被称为 。Vaadin的这次改造现在使用 Lumo theme 默认情况下。主题设计为易于更改、更改字体、大小、颜色、间距等。

    瓦丁队现在 offers an online editor 通过设置调色板进行调整,并通过视觉显示查看效果,可以轻松更改主题。当您满意时,可以下载主题设置,以便在Vaadin项目中使用。

    特别是 印刷术 选项卡及其 字体系列 弹出菜单,您可以为整个应用程序选择默认字体。更好地控制您的 Web typography ,您可以打开 先进的 要编辑的节 CSS font stack

    顺便说一下,Lumo既有亮模式也有暗模式,这里显示的是暗模式。

    enter image description here