2012-03-13 54 views
0

例如:有沒有一種簡單的方法將「font」風格的屬性轉換爲它的每種風格?

這裏是一個樣式對象:

{ 
    font: normal normal bold 14px/14px arial, 
    color: black 
} 

我想糾正對象是這樣的:

{ 
    fontStyle: normal, 
    fontVariant: normal, 
    fontWeight: bold, 
    fontSize: 14px, 
    lineHeight: 14px, 
    fontFamily: arial, 
    color: black 
} 

我可以很容易地分割字符串並解析出每個屬性,但有時所有屬性可能不存在。例如,您可能會收到以下類似的樣式對象:

{ 
    font: bold 14px arial 
} 

謝謝!

+1

爲什麼你要這麼做? – 2012-03-13 16:47:52

+0

我正在編寫的腳本的一部分將樣式對象發送到服務器。因爲這可能每秒發生很多次,所以我將發送給服務器的最後一個樣式對象與要發送的樣式對象進行比較,然後僅發送變化量以最大限度地減少發送的數據量。 – 2012-03-13 16:50:06

+0

應該一起避免使用'font:'。有關詳細信息,請參閱https://developer.mozilla.org/en/CSS/font上的黃色框。 – ThiefMaster 2012-03-13 16:50:19

回答

0

如果樣式實際上已應用於元素,然後在當前的瀏覽器可以使用:

window.getComputedStyle(el).getPropertyValue(...) 

提取各個字段的值(例如font-familyline-height

0

哪部分你有問題?有一個屬性的順序和每個屬性的一些可接受的值,只是通過他們跳過屬性,沒有任何有效的值屬性

+0

我認爲,但某些屬性的值可能相同。 「正常」和「繼承」就是兩個例子。 – 2012-03-13 16:52:45

+0

我仍然沒有看到問題,你首先尋找風格,它接受繼承和正常,所以如果它說正常是風格,下一個屬性是變種,尋找有效的屬性 – 2012-03-13 17:08:05

相關問題