jQueryはdisplay
、simpleshow()
とhide()
functionsの内部でCSSプロパティを使用します。次のHTMLには、それぞれがタグでラップされた3つのボタンが含まれて<span>
おり、3つのタグすべて<span>
が親<div>
コンテナに配置されています。ページの読み込み時に、<span>
タグはjQueryを使用して非表示hide()
になり、後でshow()
関数を使用して表示されます。これで、HTMLは次の状態になり、<span>
タグはスタイル値を受け取りましたdisplay: block;
。
<div style="text-align:right; width:100%;">
<span style="display:block">
<input type="button" value="Button1" />
</span>
<span style="display:block">
<input type="button" value="Button2" />
</span>
<span style="display:block">
<input type="button" value="Button3" />
</span>
</div>
Firefox(3.5)では、スパン要素は互いに垂直に積み重ねられて表示されますが、IEではインラインで表示されます。スパンタグのデフォルトのレイアウトはインラインであると思ったので、両方のブラウザで後者を期待していました。
手動でスタイルをからに変更するdisplay:block
とdisplay: inline;
、Firefoxでは正しく表示されます。基本的に、要素を表示するとき、jQueryはdisplay
常に有効であるとは限らない値を使用しています。追加display: block
; 要素を表示するには十分ですが、必要なインラインレイアウトで表示するには十分ではありません。
だから、私の質問に:
- これはjQueryの既知の問題ですか?jQuery1.2.6を使用しています。
- 誰かが以前にこの問題を経験したことがありますか、そしてどのようにそれを回避しましたか?