2016-12-09 6 views

答えて

1

これはqooxdooのテーマ設定では現在処理できないと思われますが、グローバルなqooxdooスタイルシートにルールを追加することで解決策があります。

必要なキー情報は::selection疑似要素です。詳細についてはhttps://developer.mozilla.org/de/docs/Web/CSS/::selectionのドキュメントを参照してください。これについてはstackoverflow https://stackoverflow.com/a/23681913/6255232をご覧ください。

この情報を使用して、CSSルールは、選択可能な要素ごとにグローバルに、または具体的には、たとえばqx.ui.style.Stylesheet.getInstance().addRuleによって追加できます。入力とテキストエリア。

すべての入力elmentsのために赤に選択の背景色をchangeingための基本的な例は次のようになります。addRule方法のチェックなど

qx.ui.style.Stylesheet.getInstance().addRule(
    "input::selection", 
    "background-color:#ff0000" 
); 

与えられたルールが現在のブラウザに適用された場合、あなたが買ってあげます-moz-のような接頭辞を持つルールをゲットコ以外のブラウザに追加しようとすると例外です。したがって、ブラウザのエンジンスイッチを使用するか、すべての接頭辞を試して例外を無視して、これを処理する必要があります。

var rules = [ 
    "input::selection,textarea::selection", 
    "input::-moz-selection,textarea::-moz-selection", 
    "input::-ms-selection,textarea::-ms-selection", 
    "input::-webkit-selection,textarea::-webkit-selection" 
]; 

for(var i=0;i<rules.length;i++) { 
    try { 
    qx.ui.style.Stylesheet.getInstance().addRule(
     rules[i], 
     "background-color:#ff0000"); 
    } 
    catch(ex) {}; 
} 

これは、すべての入力およびテキストエリアの要素の背景色を赤に変更する必要があります。

もちろん、colorプロパティをルールに追加することで、テキストの色を変更することもできます。

そして、すべての要素に変更を適用するルール​​を作成することができます。私の前の回答に

+0

適用されたqooxdooテーマカラーをこのコードスニペットの名前で使用することはできますか? –

+0

良いアイデア!すぐに私の答えを変えるでしょう – level420

0

一つの追加は:

あなたは

var cssColor = qx.theme.manager.Color.getInstance().resolve('my-theme-color-name'); 

を経由して色名を解決することにより、テーマカラーを使用し、ルールでbackground-colorまたはcolorプロパティを構成することを使用することができます。

動的テーマの変更を使用する場合は、異なるテーマカラーを反映するためにルールを再適用する必要があることに注意してください。

関連する問題