Google应用脚本UiApp不会将元素置于Internet Explorer中心

时间:2012-12-04 15:10:21

标签: google-apps-script

我的网络应用中有面板,我正在设置样式属性:

panel.setStyleAttribute('margin-left', 'auto').setStyleAttribute('margin-right','auto');

这在铬中完美地恶化,使元素按照预期居中。但是在IE中,元素粘在屏幕左侧。

有没有解决这个问题的方法?

3 个答案:

答案 0 :(得分:2)

与其他浏览器不同,margin:auto只能在Internet Explorer中使用标准模式而不是quirks模式。

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中运行。但请注意,因为标准模式样式的有时解释不同于quirks模式,所以这可能会改变布局的其他方面。

一些注意事项:

  • setStandardsMode仅在初始应用创建时受到尊重(即在doGet中),如果您稍后尝试在处理程序中设置它,则会被忽略。
  • GuiBuilder的布局规则采用标准模式,这就是隐含强制标准模式的原因。如果在应用程序中的回调中加载GuiBuilder组件,而该应用程序在doGet期间未设置为标准模式(显式或因为您加载了另一个组件),则由于它处于怪异模式,可能会对布局和样式进行细微更改。

答案 1 :(得分:0)

使用CSS样式属性的规范化表单

panel..setStyleAttribute('marginLeft', 'auto').setStyleAttribute('marginRight','auto')

您可以查看支持的样式属性列表here

答案 2 :(得分:0)

我已经在google上针对此问题记录了问题#2159。

http://code.google.com/p/google-apps-script-issues/issues/detail?id=2159