Web アプリにパネルがあり、次のようにスタイル属性を設定しています。
panel.setStyleAttribute('margin-left', 'auto').setStyleAttribute('margin-right','auto');
これはクロムで完全に機能し、期待どおりに要素を中央に配置します。ただし、IE では、要素が画面の左側に固定されます。
この問題を回避する方法はありますか?
Web アプリにパネルがあり、次のようにスタイル属性を設定しています。
panel.setStyleAttribute('margin-left', 'auto').setStyleAttribute('margin-right','auto');
これはクロムで完全に機能し、期待どおりに要素を中央に配置します。ただし、IE では、要素が画面の左側に固定されます。
この問題を回避する方法はありますか?
他のブラウザーとは異なり、margin:auto は、quirks モードではなく標準モードを強制した場合にのみ Internet Explorer で機能します。
UiApp は、(a) 最初のアプリ作成時に GuiBuilder コンポーネントをロードして標準モードを強制するか、(b) 標準モードを明示的に要求しない限り、デフォルトで quirks モードの CSS ルールになります。
これにより、標準モードに設定されるため、IE でも機能します。
function doGet() {
var app = UiApp.createApplication().setStandardsMode(true);
return app.add(app.createLabel('centered').setStyleAttributes(
{marginLeft: 'auto',
marginRight: 'auto',
width: '100px'}));
}
setStandardsMode(true)に注意してください- これがないと IE では動作しません。ただし、標準モードのスタイルは quirks モードとは異なる方法で解釈されることがあるため、注意してください。これにより、レイアウトの他の側面が変更される可能性があります。
いくつかのメモ:
私はこの問題のためにグーグルで問題#2159を記録しました。
http://code.google.com/p/google-apps-script-issues/issues/detail?id=2159
CSS スタイル属性に正規化されたフォームを使用する
panel..setStyleAttribute('marginLeft', 'auto').setStyleAttribute('marginRight','auto')
サポートされているスタイル属性のリストはこちらで確認できます