2012-01-19 15 views
1

私は、ユーザーがDIVを含むDIVのパディングを動的に変更できるようにするためにjQueryを使用しています。これがないChromeではなく、すべての要素を正常に動作FirefoxではChromeのJquery CSSに関する問題

$('#preview > div').css('padding', ui.value + '%'); 

はに更新されています:

私は変更に更新コンテナDIVのパディングに次のオフ発射範囲スライダを使用しています新しいパディングを反映します。説明する最も簡単な方法は、画像を使用しています。

Image 1 - Before DIV padding is increased. 1.画像1では、パディングは5%で、見出しと段落のテキストはDIVの中央に配置されています。画像2では

Image 2 - After padding changed, only the first paragraph has recalculated its column width. Heading is off-center, and most paragraphs have retained their previous width, so overflowing. 2.、私は同じように、見出しと段落は狭い列に圧縮させなければならないテキスト、周りのパディングを増加させたが、依然としてページの中央に配置しています。ご覧のとおり、パディングを変更すると、最初の段落だけが正しく更新されています。

テキストが正しく配置されていない状態で、別のスタイルプロパティ(見出しフォントの変更など)を変更すると、ページ内のすべての要素がすぐに更新され、正しく配置されます。

jQueryにDIV内のすべての要素の位置を強制的に再計算させるコマンドがありますか?

ありがとうございます!

+1

htmlを投稿できるのは、セレクタだけかもしれないからです。 – tw16

+0

jsfiddleで問題を再現できます。 Firefoxでコードを実行し、スライダを使用してコンテナDIVのパディングを変更すると、内部の段落がそれに応じて調整されます。 Chromeで同じ操作を行い、段落は元の幅にとどまり、右に移動します。 http://jsfiddle.net/ms3Jd/ – Mateo

+0

%の代わりにpxを使用すると、すべてのdivや最初のものだけで動作しますか? '%'が問題なのかどうかを調べようとしています。 –

答えて

0

は注意が必要ですパディングのためのパーセントを使用して

$('#preview div') 
+0

残念ながら、違いはありません。 – Mateo

0

にあなたのセレクタを変更してみてください。 #previewにハードコードされた幅(800ピクセルなど)を与えて、何が起こるかを確認してください。 'パディング'は、適用された要素の親ノードの '幅'に相対的です。

最初のDIVのパディングが増加すると、その要素の幅が増加し、次のDIVのパディング計算が異なることがあります。ブラウザに依存する可能性があります。

この場合、パーセンテージなしで作業することをおすすめします。

+0

ありがとうございます。しかし、さまざまな理由から、私はこれに%を使用することをお勧めします。しかし、私はあなたのアドバイスを試みました。残念ながら、それは違いはありませんでした。 – Mateo

関連する問題