2

ノックアウトを使用して、一部のdivに背景画像を設定しています。

<div class="values" data-bind="foreach: values" >
  <div class="cvsection" data-bind="style: {'background-image': backgroundimg}" style="background-repeat: no-repeat; background-size:100%;background-repeat: no-repeat; background-position: center bottom;">

    <!-- Stuff inside the div -->   
  </div>
</div>

私のビューモデルでは、各value()には次のようなプロパティがあります。

backgroundimg: 'url(i/img.jpg)'

背景画像はChromeとIE9で期待どおりに表示されますが、Firefox15またはIE8では表示されません。コンソールなどにJavaScriptエラーは表示されません。

これはノックアウトの問題、またはその他のCSSの問題だと思いますか?どんな助けでもいただければ幸いです!

4

2 に答える 2

8

あなたのスニペットは

<div class="values" data-bind="foreach: values" >
  <div class="cvsection" data-bind="style: {backgroundImage: backgroundimg}" style="background-repeat: no-repeat; background-size:100%;background-repeat: no-repeat; background-position: center bottom;">

    <!-- Stuff inside the div -->   
  </div>
</div>

'background-image'がbackgroundImageに変更されました

ドキュメントによると:

フォントの太さやテキスト装飾のスタイル、または名前が正当なJavaScript識別子ではないその他のスタイル(ハイフンが含まれているなど)を適用する場合は、そのスタイルにJavaScript名を使用する必要があります。

于 2012-09-26T19:35:24.167 に答える
2

それが言うとき、ここを見てください:

注:名前が正当なJavaScript変数名ではないスタイルを適用する

フォントの太さやテキストの装飾スタイル、または名前が正当なJavaScript識別子ではないその他のスタイル(ハイフンが含まれているなど)を適用する場合は、そのスタイルにJavaScript名を使用する必要があります。例えば、

{font-weight:someValue};と書かないでください。{fontWeight:someValue}と書いてください

{text-decoration:someValue};と書かないでください。{textDecoration:someValue}と書いてください

そのため、cssルール「background-image」を適用する場合は、ノックアウトのスタイルバインディングに「backgroundImage」と記述する必要があります。

ドキュメントは常にトリックを行います;)

于 2013-07-26T10:00:05.283 に答える