2012-12-11 55 views
0

我對LESSC @字體面誤差

.fontface(@font){ 
    @font-face { 
     font-family: '@{font}'; 
     src: url('../fonts/@{font}.eot'); 
     src: local('☺'), url('../fonts/@{font}.woff') format('woff'), url('../fonts/@{font}.ttf') format('truetype'), url('../fonts/@{font}.svg#webfont5SwbW1jA') format('svg'); 
     font-weight: normal; 
     font-style: normal; 
    } 
} 

.fontface('MyFont'); 
.fontface('MyOtherFont'); 

回報

簡化字型的東西

.fontface(@font){ 
    @font-face { 
     font-family: '@{font}'; 
     src: url('../fonts/@{font}.eot'); 
     src: local('☺'), url('../fonts/@{font}.woff') format('woff'), url('../fonts/@{font}.ttf') format('truetype'), url('../fonts/@{font}.svg#webfont5SwbW1jA') format('svg'); 
     font-weight: normal; 
     font-style: normal; 
    } 
} 

在我的本地計算機(OS/X),運行lessc少一點混入

@font-face { 
    font-family: 'MyFont'; 
    src: url('../fonts/MyFont.eot'); 
    src: local('☺'), url('../fonts/MyFont.woff') format('woff'), url('../fonts/MyFont.ttf') format('truetype'), url('../fonts/MyFont.svg#webfont5SwbW1jA') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 
@font-face { 
    font-family: 'MyOtherFont'; 
    src: url('../fonts/MyOtherFont.eot'); 
    src: local('☺'), url('../fonts/MyOtherFont.woff') format('woff'), url('../fonts/MyOtherFont.ttf') format('truetype'), url('../fonts/MyOtherFont.svg#webfont5SwbW1jA') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

但是在我們的構建服務器上運行它(CentOS 6.2)返回

@font-face { 
    font-family: 'MyFont'; 
    src: url('../fonts/MyFont.eot'); 
    src: local('☺'), url('../fonts/MyFont.woff') format('woff'), url('../fonts/MyFont.ttf') format('truetype'), url('../fonts/MyFont.svg#webfont5SwbW1jA') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 
@font-face { 
    font-family: 'MyFont'; 
    src: url('../fonts/MyFont.eot'); 
    src: local('☺'), url('../fonts/MyFont.woff') format('woff'), url('../fonts/MyFont.ttf') format('truetype'), url('../fonts/MyFont.svg#webfont5SwbW1jA') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

爲什麼這兩個mixin在構建服務器上返回相同,但在本地工作正常?

兩臺計算機報告的版本相同。

Sams-MacBook-Pro:Desktop sr$ lessc -v 
lessc 1.3.0 (LESS Compiler) [JavaScript] 


[[email protected] ~]$ lessc -v 
lessc 1.3.0 (LESS Compiler) [JavaScript] 

我已經在兩者上都運行了npm -g update less,但我仍然收到不同的行爲。

我認爲這與@font-face有關,如果我刪除它並將其替換爲虛擬類名,則輸出正常。

+1

這可能與我在[這個答案]中解決的問題(和錯誤)有關(http://stackoverflow.com/questions/11605277/less-second-call-of-font-face-parametric-mixin-保持價值從第一次調用/ 11611715#11611715),雖然你使用相同的版本,但得到兩個不同的結果的事實確實使這更奇怪。無論如何,我提供這個解決它的可能幫助。 – ScottS

+0

@ScottS好的,謝謝,這是目前的解決方法。我的字體是在一個文件中定義的,因爲它不是那麼多額外的代碼。 – Smudge

回答

1

一個變通現在,在 this answer 由@ScottS建議的,是把.fontface混入內部手動定義@font-face塊,像這樣

.fontface(@font){ 
    font-family: '@{font}'; 
    src: url('../fonts/@{font}.eot'); 
    src: local('☺'), url('../fonts/@{font}.woff') format('woff'), url('../fonts/@{font}.ttf') format('truetype'), url('../fonts/@{font}.svg#webfont5SwbW1jA') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

@font-face{ 
    .fontface('MyFont'); 
} 

@font-face{ 
    .fontface('MyOtherFont'); 
} 

現在給出了從兩種編譯器正確的輸出。