我的网络应用程序中有面板,我正在设置样式属性,如下所示:
panel.setStyleAttribute('margin-left', 'auto').setStyleAttribute('margin-right','auto');
这在镀铬中非常糟糕,如预期的那样使元素居中。但是在 IE 中,元素被卡在屏幕的左侧。
有没有办法解决这个问题?
我的网络应用程序中有面板,我正在设置样式属性,如下所示:
panel.setStyleAttribute('margin-left', 'auto').setStyleAttribute('margin-right','auto');
这在镀铬中非常糟糕,如预期的那样使元素居中。但是在 IE 中,元素被卡在屏幕的左侧。
有没有办法解决这个问题?
与其他浏览器不同,margin:auto 仅在您强制标准模式而不是怪癖模式时在 Internet Explorer 中有效。
UiApp 默认使用 quirks 模式 CSS 规则,除非 (a) 您在初始应用程序创建时加载 GuiBuilder 组件,这会强制标准模式,或者 (b) 您明确要求标准模式。
这会将您设置为标准模式,因此也可以在 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 中工作。不过要小心,因为标准模式样式的解释有时与怪癖模式不同,因此这可能会改变布局的其他方面。
一些注意事项:
对 CSS 样式属性使用规范化形式
panel..setStyleAttribute('marginLeft', 'auto').setStyleAttribute('marginRight','auto')
您可以在此处查看支持的样式属性列表
我已经用谷歌记录了这个问题的问题#2159。
http://code.google.com/p/google-apps-script-issues/issues/detail?id=2159