私が直面している問題は、setTimeout で実行されているコード内で要素の padding-right プロパティを設定しようとすると、その中のli要素のサイズが適切に変更されないことです。setTimeout 内にいない場合、問題は発生しません (または、少なくともほとんど発生しません)。
誰かがこれがWebkit のバグであることを確認できますか、または解決策を指摘できますか?
ChromeとSafariで再現できました。
3 つのシナリオを作成しました (テストには Chrome と Safari を使用してください)。
- 静的CSSのパディング右のUL - 明らかに動作しますhttp://jsbin.com/ufifos/5/edit
- setTimeout 内ではなく js コードで padding-right が設定された ul - 動作します (ほとんどの場合) jsbin.com/ekazow/1/edit を参照してください
- setTimeout 内の js コードで padding-right が設定された ul - 正しく動作しませんhttp://jsbin.com/uzorux/1/edit
padding-right が設定されていますが、li要素が正しく再描画されていません。ブラウザのサイズ変更 (または数回のサイズ変更) で修正されます。
基本的にコードは
setTimeout(function(){
document.getElementById('container').style.paddingRight = '20px';
}, 2000);