我已經設法將extjs4面板嵌入到現有的extjs3應用程序中。從現有樣式繼承CSS。 Extjs4 Sandbox
我要繼承現有的CSS配色方案面板底座等
但我extjs4組件「沙盒」,因此使用.x4- *命名空間CSS。
如何:從
my-styles.css
.x4-tab { some-stuff }
繼承:
existing-styles.css
.x-tab { foo: #FFF }
這可能嗎?歡呼聲
我已經設法將extjs4面板嵌入到現有的extjs3應用程序中。從現有樣式繼承CSS。 Extjs4 Sandbox
我要繼承現有的CSS配色方案面板底座等
但我extjs4組件「沙盒」,因此使用.x4- *命名空間CSS。
如何:從
my-styles.css
.x4-tab { some-stuff }
繼承:
existing-styles.css
.x-tab { foo: #FFF }
這可能嗎?歡呼聲
您可以抓取選擇器中具有'.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(' '))
儘管這在技術上是可以做到的,結果就沒有實際意義,除非你手動完成對每個組件和覆蓋類有正確的CSS引用如果他們甚至存在(你需要創建其他人手動)。這是因爲Extjs 4在技術上對css命名空間和類不像Extjs 3那樣工作。您可以通過覆蓋組件類來手動更改組件所使用的所有css類,但這僅僅是不值得的。沒有大量的努力就無法完成你所要做的事情,這是不值得的。
謝謝,這正是我所期待的,它不會抓住所有的顏色,但它改變了足夠的樣式看起來相似。 – Awalias 2013-03-14 22:35:52