0

extjs4パネルを既存のextjs3アプリケーション内に埋め込むことができました。

パネルヘッダーなどの既存のcss配色を継承したい。

しかし、私のextjs4コンポーネントは「サンドボックス化」されているため、cssに.x4-*名前空間を使用しています。

どのようにすることができます:

my-styles.css

.x4-tab { some-stuff }

継承元:

existing-styles.css 

.x-tab { foo: #FFF }

これは可能ですか?乾杯

4

2 に答える 2

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(' '))
于 2013-03-13T19:45:58.623 に答える
1

これは技術的には可能ですが、各コンポーネントを手動で調べ、クラスが存在する場合でも正しいcss参照を持つようにクラスをオーバーライドしない限り、結果は実際には意味がありません(他のコンポーネントを手動で作成する必要があります)。これは、Extjs4が技術的な意味でExtjs3と同じようにcss名前空間とクラスで機能しないためです。コンポーネントクラスをオーバーライドすることで、コンポーネントが使用しているすべてのcssクラスを手動で変更できますが、これは時間の価値がありません。 。あなたがやろうとしていることは、多大な努力なしには成し遂げられず、それだけの価値はありません。

于 2013-03-13T19:51:31.870 に答える