1

私が直面している問題は、setTimeout で実行されているコード内で要素の padding-right プロパティを設定しようとすると、その中のli要素のサイズが適切に変更されないことです。setTimeout 内にいない場合、問題は発生しません (または、少なくともほとんど発生しません)。

誰かがこれがWebkit のバグであることを確認できますか、または解決策を指摘できますか?

ChromeとSafariで再現できました。

3 つのシナリオを作成しました (テストには Chrome と Safari を使用してください)。

  1. 静的CSSのパディング右のUL - 明らかに動作しますhttp://jsbin.com/ufifos/5/edit
  2. setTimeout 内ではなく js コードで padding-right が設定された ul - 動作します (ほとんどの場合) jsbin.com/ekazow/1/edit を参照してください
  3. setTimeout 内の js コードで padding-right が設定された ul - 正しく動作しませんhttp://jsbin.com/uzorux/1/edit

padding-right が設定されていますが、li要素が正しく再描画されていません。ブラウザのサイズ変更 (または数回のサイズ変更) で修正されます。

基本的にコードは

setTimeout(function(){

    document.getElementById('container').style.paddingRight = '20px';

}, 2000);
4

1 に答える 1

0

問題は次のルールにあります。

li {
   width: 100%;
}

最初の「動作」テストにはありません。それを削除すると、正常に動作するはずです。display: blockli も設定する必要があるかもしれません。

于 2012-11-02T15:13:39.603 に答える