2012-10-09 3 views
0

IE 7/8/9에서이 심각한 문제가 있습니다.Dojo의 중첩 된 BorderContainer가 IE에서 사라짐

나는 Dojo toolkit 1.8.0Play! framework을 사용하여 앱을 작성했습니다. IE를 제외한 모든 브라우저에서 정상적으로 작동합니다. 그것의 '개발자 도구'는 오류를 나타내지 않으므로 방화범도 들려줍니다. 문제가있는 코드 섹션은 여기에 있습니다 : good way http://s17.postimage.org/jakfmlsfz/image.jpg

그러나 IE에서이처럼 표시됩니다 : bad way http://s17.postimage.org/wfzxspmbj/image.jpg

수있는 사람을 IE를 제외한 모든 브라우저에서

<div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="design: 'headline'"> 
    <div data-dojo-type="dijit.layout.ContentPane" id="head" region="top"> 
    </div> 
    <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region: 'center'"> 
     <div data-dojo-type="dijit.layout.ContentPane" id="menu" region="left"> 
     </div> 
     <div data-dojo-type="dijit.layout.BorderContainer" data-dojo-props="region: 'center'"> 
      <div data-dojo-type="dijit.layout.ContentPane" id="content_1" region="top"> 
      </div> 
      <div data-dojo-type="dijit.layout.ContentPane" id="content_2" region="bottom"> 
      </div> 
     </div> 
    </div> 
    <div data-dojo-type="dijit.layout.ContentPane" id="foot" region="bottom"> 
    </div> 
</div> 

결과는, 그런 식입니다 왜 그런 차이가 있는지 설명해주십시오. 처음에는 IE 내용이 숨겨져 있으므로 overflow: auto을 설정했지만 페이지로드 후에는 스크롤바가 나타나지 않습니다.

답변

0

더 필요로하는 표준 및 불분명 한 마크 업에 휴식을 수 있습니다 :

.menu { 
    margin-right: auto; 
    margin-left: auto; 
} 

이이 스타일은 내 전체 레이아웃을 파산 -. - 내가 그것을 제거하면 제대로 표시되기 시작했습니다.

0

두 가지 이유가 마음에 와서 :

  1. 당신은 콘텐츠 컨테이너의 '중심'요소가없는 - AFAIK, 도장 사양은 지정된 region="center" 또는 비 지역과 하나 BorderContainerChild을 기본적으로 필요 to center

  2. BorderContainer의 직계 하위 태그로 레이아웃에 포함되지 않은 요소가 있습니까? IE는 한번 문제는 .menu 요소에 추가 내 사용자 정의 클래스로했다이 경우

+0

모든 영역이 올바르게 설정되었고'BorderLayout'의 직접 하위 항목으로'ContentPane' 만 있습니다. 문제는'.menu' 엘리먼트에 추가 된 커스텀 클래스 때문입니다. – maialithar