2012-10-09 65 views
0

我對IE 7/8/9有這個可怕的問題。Dojo的嵌套BorderContainer在IE中消失

我用Dojo toolkit 1.8.0Play! framework寫了一個應用程序。它在除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所有的瀏覽器就是這樣: good way http://s17.postimage.org/jakfmlsfz/image.jpg

但在IE中顯示這樣的: bad way http://s17.postimage.org/wfzxspmbj/image.jpg

人解釋爲什麼會有這種差異?起初我以爲IE內容是隱藏的,所以我設置了overflow: auto,但頁面加載後沒有出現滾動條。

回答

0

的問題是與添加到.menu元素我的自定義類:

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

這2款打破了我的整個佈局 - 。 - 當我刪除它時,它開始正確顯示。

0

兩個可能的原因浮現在腦海中:

  1. 你不具有該內容容器中的「中心」元素 - 據我所知,道場規範要求與region="center"或非區一個BorderContainerChild指定,默認到中心

  2. 你的標記中是否有任何非佈局元素作爲BorderContainer的直接子元素? IE一次較爲標準的要求,並在標記不清斷裂在此情況下

+0

我已經正確設置了所有區域,並且只有'ContentPane'作爲'BorderLayout'的直接子元素。問題是自定義類添加到'.menu'元素。 – maialithar