2012-03-05 8 views
0

Firefoxの拡張機能でnsIStyleSheetServiceを使用して、すべてのWebページにカスタムスタイルシートを登録しています。すべてがいくつかのスタイルの大きな期待に応えます。nsIStyleSheetService CSS入力

これは動作しない私のスタイルの1つです。私は入力/テキストエリアを持つフォームを追加しましたが、見た目は変わりません。私は重要なことを追加しようとしましたが、それもうまくいかなかった。私が間違っていることは何か考えていますか?

いくつかのテストを行った後、私は次のスタイルが動作しないことが判明:

background-color:#f3f3ec; 
border:1px solid #d1d1cf; 
-moz-border-radius: 10px; 

奇妙なことは、私はページに直接CSSを読み込むとき、それが動作することであるが、nsIStyleSheetServiceを使用することによってそれはdoesnの仕事。私はそれで起こっていることを完全に混乱させています。 :( 私はすでに何か他のものに色を設定しようとしたが、それはあまりにも動作しませんでした

.MyToolTipWrapper input, 
.MyToolTipWrapper textarea { 
    background-color:#f3f3ec; 
    border:1px solid #d1d1cf; 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:12px; 
    width:97%; 
    padding:5px; 
    -moz-border-radius: 10px; 
} 

私のinitスクリプト:あなたはUSER_SHEETを使用している場合

var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); 
var uri = makeURI("resource://newtooltip/newtooltip.css"); 
if (sss.sheetRegistered(uri, sss.USER_SHEET)) 
    sss.unregisterSheet(uri, sss.USER_SHEET); 
if (on) 
    sss.loadAndRegisterSheet(uri, sss.USER_SHEET); 
+0

それ以外は何ですか?あなたの質問は非常に曖昧です。 – BoltClock

+0

すみませんでした。それを編集しました! –

+0

@cscharrはすでにそれを試してみました –

答えて

1

CSS 2.1 definesユーザエージェントスタイルシートは、スタイルシートが定義されたよりも低い優先順位を持っていることウェブページによって - !importantキーワードが使用されている場合を除きます。あなたの場合、Webページはおそらくbackground-colorの値を定義しており、ユーザーのスタイルシートの設定を上書きします。 !importantを使用して、設定が有効であることを確認してください。

background-color:#f3f3ec !important; 
border:1px solid #d1d1cf !important; 
-moz-border-radius: 10px !important; 
+0

悲しいことに、私はすでにそれを試みましたが、それもうまくいきませんでした。入力タグだけの空白のページであっても動作しません。これらのスタイルをインラインに割り当てるとうまく動作します。それは本当に奇妙な... –

+0

OPのために働いていないかもしれないが、私のケースでうまくいきました - ありがとう。 – rgardler

0

ウェブサイトのCSSルールは、より高い持っていますあなたより優先。 ので、あなたのCSSは、高い優先度を取得し、AGENT_SHEETを使用してみてください。

+0

間違っています。http://www.w3.org/TR/CSS2/cascade.html#cascading-orderを参照してください。ユーザーエージェントのスタイルシートは、実際には最も低い優先度を持っています。また、通常は拡張機能を使用するべきではありません(注意しないとクラッシュを引き起こす可能性のある組み込みノードにも適用されます)。 –