2011-11-11 6 views
0

この問題は私に一日中困惑していました。私はFirefoxの8を使用していると私はdivタグの内側に位置してUL要素を持っている、divタグは、jQueryのUIアコーディオンウィジェットでアニメーション化されて次のマークアップを示して:FirefoxでCSSスタイルがオーバーライドされています

<div id="accordion"> 
    <a class="ui-accordion-header">Section 1</a> 
    <ul style="width: 250px !important;"> 
     <li> 
      <dl id="MyDefinitionList"></dl> 
     </li> 
    </ul> 
</div> 

私の問題は、そのFirefoxでありますタグのインライン幅のスタイルが上書きされ、0pxにリセットされます。

<div id="accordion"> 
    <a class="ui-accordion-header">Section 1</a> 
    <ul style="width: 0px;"> 
     <li> 
      <dl id="MyDefinitionList"></dl> 
     </li> 
    </ul> 
</div> 

これはクロムやIEには発生しませんし、私はFFでこれを引き起こしているものは考えている。だから、上記次のようにFirefoxでレンダリングされてしまいます。理想的には、jQueryから動的に幅を設定したいと思いますが、私は.width(250).css("width", "250px")を試しましたが、いずれも効果がありません。上記の例ではインラインに設定してテストしましたが、十分に上書きして0pxに戻します。この動作を引き起こすFirefoxレンダリングエンジンには、ブラウザの設定や機能がありますか?私はまた、jQuery UI CSSのスタイルをチェックしようとしましたが、幅を0pxとして定義したものは表示されませんでした。私たちは現在、このWebアプリをプッシュアウトしようとしており、ブラウザ間で互換性がなければなりません。ありがとう。

UPDATE

私はこのスニペットを言及するのを忘れてしまったことの一つは、動的なJavaScriptのメニューシステムの一部です。私はそれが全体でjsFiddleにそれを複製できるとは思わない。メニュー生成に何か関係があるのだろうか?メニューコードやCSSには0pxの幅を指定するものは何もありませんが、 IEやChromeではなく、Firefoxでこれがどうして起こるかは説明しません。ここでは2

UPDATEは、予想通り、私は動的にjQueryを使用して計算幅がelement.styleプロパティに適用される Firefoxの

にクロムに比べクロムからいくつかのスナップショットです。

enter image description here

しかしFirefoxので、element.styleは、レンダリングページ上に0PXにリセットされます。

enter image description here

+0

このコードはここでうまくいきます(FF8.0)。jsfiddleには動作しない例がありますか? –

+0

ローカルまたはライブWebサーバーでこれを実行していますか? ChromeとFFの間のあなたのCSSがまったく一致しません... visibility missing、margin-top missing、display is none、topが上書きされています。他のすべてが同じであると確信していますか?これを実行する場合は、CSSファイルのキャッシュバージョンを使用している可能性があります。私はアコーディオンを生成するjQueryコードを投稿します。 – skyline3000

答えて

0

CSSはまた、継承に従ってください。..いくつかのCSSプロパティは、親コントロールのCSSから継承されます。 bodyタグやその他の親からのように.. FireBugを使用してブラウザ間の問題やUIデザインを確認してください。私はそのような継承を示すイメージを付けています。 enter image description here

は、あなたがこのことについてアイデアを得ることを願っています。.. あなたには、いくつかのCSSプロパティを優先したい場合は、親継承されたプロパティの影響を受けない必要がありますし、それらを!importantを使用しています。例:

a{ display: block !important; } 

これではほとんど分からないでしょう。

実行時に追加する場合は、firbugの変更を観察し、要件に応じてGUIを修正し、.css()の代わりに.addCss()を使用します。 api.jquery.com/addClass/

関連する問題