2013-03-13 83 views
0

我已經設法將extjs4面板嵌入到現有的extjs3應用程序中。從現有樣式繼承CSS。 Extjs4 Sandbox

我要繼承現有的CSS配色方案面板底座等

但我extjs4組件「沙盒」,因此使用.x4- *命名空間CSS。

如何:從

my-styles.css 

.x4-tab { some-stuff } 

繼承:

existing-styles.css 

.x-tab { foo: #FFF } 

這可能嗎?歡呼聲

回答

1

您可以抓取選擇器中具有'.x-'的所有現有css規則,並使用'.x4-'創建新規則。

var newRules = []; 
Ext.Object.each(Ext.util.CSS.getRules(), function(selector, rule) { 
    if (/\.x-/.test(selector)) { 
     newRules.push(rule.cssText.replace(/\.x-/g, '.x4-'); 
    } 
}); 

Ext.util.CSS.createStyleSheet(newRules.join(' ')) 
+0

謝謝,這正是我所期待的,它不會抓住所有的顏色,但它改變了足夠的樣式看起來相似。 – Awalias 2013-03-14 22:35:52

1

儘管這在技術上是可以做到的,結果就沒有實際意義,除非你手動完成對每個組件和覆蓋類有正確的CSS引用如果他們甚至存在(你需要創建其他人手動)。這是因爲Extjs 4在技術上對css命名空間和類不像Extjs 3那樣工作。您可以通過覆蓋組件類來手動更改組件所使用的所有css類,但這僅僅是不值得的。沒有大量的努力就無法完成你所要做的事情,這是不值得的。