簡體   English   中英

2019年是否有跨瀏覽器方式將字體包含在Web應用程序中?

[英]Is there a cross browser way to include fonts in web applications in 2019?

在將某些工作站升級到Windows 10和IE11的組合之后,我擁有5年歷史的Java Web應用程序遇到了字體問題。 這里從Microsoft的角度詳細描述了該問題。 有幾種資源描述了如何關閉這些設置,但是我想知道是否有任何跨瀏覽器解決方案可以繼續使用特定字體,而阻止Web字體。

微軟的建議是以下兩個:

在安裝了應用程序的每台計算機上,右鍵單擊字體名稱,然后單擊“安裝”。 字體應自動安裝到%windir%/Fonts目錄中。 如果不是,則需要手動將字體文件復制到Fonts目錄中,然后從那里運行安裝。

這是指桌面應用程序,不能用Web應用程序完成。 無論如何,這都不是令人滿意的解決方案,因為它需要每個用戶積極地進行設置。

在安裝了應用程序的每台計算機上,打開regedit.exe ...

我什至不打算包括其余部分,因為它與上一個解決方案建議存在相同的問題。

我嘗試過的

<link href='http://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-
    awesome.css' rel='stylesheet' type='text/css'>

不起作用 參考中的css文件嘗試使用以下行加載字體:

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}

它以不同的格式導入相同的字體,以支持不同的瀏覽器。 我希望我可以繼續使用很棒的字體,只需下載資源並將其打包到我的.war文件中即可。 但是我使用這種方法的另一種字體也不起作用:

從我的custom-fonts.css中:

@font-face {
    font-family: 'Trim';
    src: url('../../resources/fonts/TrimCompleteOT/Trim-Bold.woff') format('woff'),
         url('../../resources/fonts/TrimCompleteOT/Trim-Bold.otf') format('opentype');
    font-weight: 700;
}

但是,即使我的應用程序內的打包字體也不會加載或顯示。

有什么方法可以在Java Web應用程序中使用自定義字體,但不包括關閉安全性設置,也不必將設置(如安裝字體)應用於每個用戶計算機?

旁注:在任何Windows版本上,一切仍然可以在chrome中使用,在非Windows10計算機上,也可以在IE11中使用。

如果在安全設置中禁用了Web字體的使用,則沒有真正的解決方法。 如果有的話,因為您故意繞過Windows安全設置,可能是一個討厭的黑客。

那么,是時候制定計划B了。 寫的是關於這個特定問題的 ,簡而言之,您必須使用外觀漂亮的系統字體作為文本的后備,而使用基於圖像的系統作為圖標。 例如,使用PNG或SVG圖像。 但是,如果您要沿這條路線前進,則最好為所有瀏覽器將圖標字體替換為適當的圖標。

祝您好運,順便提一句寫得很好的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM