2012-12-04 14 views
1

나는 내 웹 응용 프로그램에 패널이 Internet Explorer에서 요소를 중심하지 않는 애플 리케이션, 나는 스타일과 같이 속성을 설정하고 있습니다 :구글 스크립트 UiApp가

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

이 wors을 완벽하게 크롬에서 예상대로 요소를 중심으로. 그러나 IE에서는 요소가 화면의 왼쪽에 붙어 있습니다.

이 문제를 해결할 방법이 있습니까? CSS 스타일

답변

2

다른 브라우저와 달리 마진 : 당신은 쿼크 모드가 아닌 표준 모드를 ​​강제하는 경우 자동 Internet Explorer에서만 작동합니다.

UiApp는 (a) 표준 모드를 ​​강제하는 초기 앱 생성시 GuiBuilder 구성 요소를로드하거나 (b) 명시 적으로 표준 모드를 ​​요구하지 않는 한 단점 모드 CSS 규칙을 기본값으로합니다.

function doGet() { 
    var app = UiApp.createApplication().setStandardsMode(true); 
    return app.add(app.createLabel('centered').setStyleAttributes(
     {marginLeft: 'auto', 
     marginRight: 'auto', 
     width: '100px'})); 
} 

참고 setStandardsMode (참)을 -이 그것을 IE에서 작동하지 않습니다 않고 :

이 너무 IE에서 작동하므로 표준 모드에서 당신을 설정합니다. 표준 모드 스타일이 quirks 모드보다 때때로 다르게 해석되기 때문에 레이아웃의 다른면이 변경 될 수 있으므로주의해야합니다.

일부 노트 :

  • setStandardsMode 만 (의 doGet에서, 즉) 초기 응용 프로그램 작성에 존경하고 나중에 핸들러에서 설정하려고하면 무시됩니다.
  • GuiBuilder의 레이아웃 규칙은 표준 모드를 ​​가정하므로 표준 모드를 ​​암시 적으로 강제합니다. doGet 중에 표준 모드로 설정되지 않은 응용 프로그램의 콜백에 GuiBuilder 구성 요소를로드하면 (명시 적으로 또는 다른 구성 요소를로드했기 때문에) 레이아웃 및 스타일이 미완료 모드로 인해 미묘한 변경이있을 수 있습니다.
+0

Corey에게 감사드립니다. 안타깝게도 표준 모드에서는 Internet Explorer에서 예상했던 것처럼 사이트의 스타일이 지정되지 않았습니다. 표준 램프 서버를 사용하여 다시 작성해야합니다. 감사합니다 – Sherlock

+0

표준 램프를 사용하는 것이 좋습니다. 단점 모드는 브라우저에서 브라우저까지 완전히 예측할 수없는 모드입니다. 사용중인 서버 플랫폼에 관계없이 IE에서이 문제가 발생합니다. 표준 모드 CSS가 작동하는 방식을 배우고 일치하는 결과를 얻을 수있는 다른 좋은 방법이 없기 때문에 Apps Script 또는 다른 곳에서 일치하도록 기대치를 재설정하는 것이 좋습니다. –

+0

조언을 많이 주심에 감사드립니다. Corey - 저는 웹 프로그래밍에 비교적 익숙하므로 이러한 개념에 익숙해 져야합니다. – Sherlock

0

를 사용하여 표준화 된 양식은 당신이 지원되는 스타일의 목록을 확인 나는이 문제에 대한 구글과 문제점 # 2159를 기록했다 here

+0

불행히도 문제는 여전히 남아 있습니다. 모든 요소는 크롬에 집중되지만 IE에서는 왼쪽에 있습니다. 추가 생각은 없습니까? – Sherlock

+0

그래, 나도 이것을 알아 차렸다. 이슈를 이슈 트래커에보고하십시오. http://code.google.com/p/google-apps-script-issues/issues/list –

관련 문제