2015-05-06 32 views
3

我需要在帶有某些變體(粗體,斜體等)的JavaFX項目中嵌入本地.ttf文件,但css解析器似乎不支持字體屬性@ font-face聲明:如何在JavaFX中嵌入字體變體

@font-face { 
    font-family: 'Open Sans', sans-serif; 
    src: url('fonts/OpenSans-Regular.ttf'); 
} 
@font-face { 
    font-family: 'Open Sans', sans-serif; 
    src: url('fonts/OpenSans-Bold.ttf'); 
    font-weight: bold; 
} 
@font-face { 
    font-family: 'Open Sans', sans-serif; 
    src: url('fonts/OpenSans-ExtraBoldItalic.ttf'); 
    font-style: italic; 
} 

警告:CSS解析錯誤的jar :文件:/home/test/dist/run736633436/test.jar /it/test/vending/css/application.css: 意外的標記[ :] at [8,15] mag 06,2015 3:40:15 PM com.sun.javafx.css.parser.CSSParser fontFace警告:CSS錯誤 解析 的jar:文件:/home/test/dist/run736633436/test.jar /it/test/vending/css/application.css: 意外的標記[:]在[13,14]

如何我可以做到這一點嗎?

== EDIT ==


注意,解析器抱怨上字體重量:粗體;font-style:italic;規則。

+0

'font-family'應該有你想要在所有css文件中使用的font-family的名字。您使用的font-family應具有獨特的名稱,如「OpenSansRegular」,「OpenSansBold」,「OpenSansBoldItalic」。雖然我不確定這是不是問題,因爲您的CSS錯誤沒有說太多,但值得一試。 – ItachiUchiha

+0

@IchichiUchiha Nope,定義不同的家庭並不重要:解析器仍然抱怨** font-weight:bold; **和** font-style:italic; **。使用具有不同字體屬性的多個相同字體系列實際上是正確的;看到[w3schools](http://www.w3schools.com/cssref/tryit.asp?filename=trycss3_font-face_rule_bold) - 至少說到css3。 – Azathoth

回答

0

我想我找到了解決方案。嘗試將font-weightfont-style屬性與src屬性交換。在你的情況你的CSS會看起來像:

@font-face { 
    font-family: 'Open Sans', sans-serif; 
    src: url('fonts/OpenSans-Regular.ttf'); 
} 
@font-face { 
    font-family: 'Open Sans', sans-serif; 
    font-weight: bold; 
    src: url('fonts/OpenSans-Bold.ttf'); 
} 
@font-face { 
    font-family: 'Open Sans', sans-serif; 
    font-style: italic; 
    src: url('fonts/OpenSans-ExtraBoldItalic.ttf'); 
} 

我有同樣的問題,並交換屬性做的工作。我不知道這是爲什麼,但似乎解決了這個問題。