2012-08-09 51 views
2

我正在使用Dojo tabContainer。 快速問題:如果您正在處理Dojo容器,您是否必須在CSS中指定像素中的小部件大小? 從我所看到的,得到一個TabContainer實際顯示的唯一方法是通過CSS給它一個絕對大小。標籤容器的高度dojo

更新:我想通了,元素bodyhtml失蹤的height屬性,因此它被計算爲0。所以,現在如果我將它們設置爲100%,我將展示的形式......但,這將是巨大的! (只要頁面)。這個想法是把它的高度設置爲auto,這樣它就「只要它需要......」是甚至可能的?

在我的HTML我有類似:

... 
<body> 
    <div id="loginForm"> </div> 
</body> 
... 

我那麼有那麼代碼:

require(["app/widgets/LoginForm"], function(loginForm){ 
    // Create the "application" object, and places them in the right spot. 
    loginForm = new LoginForm({} , 'loginForm'); 
    loginForm.startup(); 
}); 

LoginForm的是一個簡單的基於模板的部件與下面的模板:

<div data-dojo-attach-point="tabContainer" data-dojo-type="app.TabFading" data-dojo-props="tabPosition:'top'" style="height:100%">   

    <div data-dojo-type="dijit.layout.ContentPane" data-dojo-attach-point="loginPane" data-dojo-props="title: 'Login'"> 
    <form data-dojo-type="dijit.form.Form" data-dojo-attach-point="loginForm" method="POST"> 
     <label for="${id}_login">Login</label> 
     <input name="login" id="${id}_login" data-dojo-attach-point="login" data-dojo-type="dijit.form.ValidationTextBox" data-dojo-props="required:true"/> 
     <label for="${id}_password">Password</label> 
     <input name="password" id="${id}_password0" data-dojo-attach-point="password" data-dojo-type="app.ValidationPassword" /> 
     <input type="submit" data-dojo-attach-point="button" data-dojo-type="app.BusyButton" label="Login!" /> 
    </form> 
    </div> 
</div> 
</div> 

該CSS與基本一樣:

#loginForm { 
width: 300px; 
margin: 0 auto; 
padding: 20px; 

-moz-border-radius: 20px; 
-webkit-border-radius: 20px; 

/*** Background Gradient - 2 declarations one for Firefox and one for Webkit ***/ 
background: -moz-linear-gradient(19% 75% 90deg,#FCFCFC, #CCCCCC); 
background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#FCFCFC), to(#CCCCCC)); 

/*** Shadow behind the box ***/ 
-moz-box-shadow:0px -5px 300px #a9a0a0; 
-webkit-box-shadow:0px -5px 300px #a9a0a0; 
} 

body { 
    background-color: #fcfcfc; 
    font: 9pt/1.5em Helvetica Neue, Helvetica, Arial, sans-serif; 
    margin: 0 0; 
} 

我必須使TabContainer的唯一的辦法實際出現是有它的height:300px - 否則,計算出的高度爲0

這是它是如何意思是什麼?或者我做錯了什麼?

回答

25

如果在ContentPane或TabContainer上將屬性doLayout設置爲false,它應該自動將高度設置爲內容大小。 dijit佈局容器的doLayout屬性默認爲true,然後需要將特定高度應用於該屬性。

+2

我不能,不能表達我的感謝這個答案。大家請評論這個UP UP UP。我在這方面浪費了太多時間......真的,謝謝。 – Merc 2012-08-10 01:23:33

+1

這是字面上的生活變化。這在哪裏記錄?它應該在Dojo文檔中更加突出! – streetlight 2014-03-20 11:50:08

+1

你是非常好的人=) – 2014-05-01 09:57:49