2009-03-03 68 views
0

我正在開發一個可重用的ASP.net服務器控件,需要在IE 6 +,FF 2+和Safari兩種Quirks和標準模式下工作。Resouable Asp.net服務器控件與怪癖和標準模式

控件將公開兩個用戶可定義的屬性高度和寬度這兩個屬性可以定義爲百分比或像素值。

在控件內部,我有兩個包含導航欄和控件內容的列Div。當內容大於容器時,這些列需要是一個Div來利用溢出風格。見下面的示例原型代碼;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title></title> 
    </head> 
    <body> 
     <div style="height: 100%; width:400px; background-color: Green; "> 
      <div style="height: 100%; width: 25%; background-color: Red; float:left; overflow:auto;"> 
       LongString:<br />Stuffsdfsfdsdfsfsdfdfsdfsdfsdfsdfsdxgsdfgsdfgsdgiusdfgiudfgifdgu 
      </div> 
      <div style="height: 100%; width: 75%; background-color: Pink; float:right;"> 
       Stuff 
       <br /> 
       More stuff 
       <br /> 
       And some more 
      </div> 
      <div style="clear:both;"></div> 
     </div> 
    </body> 
</html> 

我遇到的問題是,在使用百分比基準高度的標準模式下,div的預期效果只會與其內容一樣大。看來解決這個問題的唯一方法就是使用JavaScript。

然後,這會產生問題,因爲控件可以使用AJAX異步重新渲染並且高度不同步。

是我試圖實現不可能或我在錯誤的地方看?

尼克什麼

+0

我不理解爲什麼這需要呈現兩個怪癖和標準模式。無論是包含一個有效的DocType或不這樣做,對不對? – 2009-03-03 20:16:30

+0

不幸的是需要Asp.net應用程序中使用的控制在標準和怪異模式下運行 – Nick 2009-03-03 20:21:23

回答

0
<div style="height: 100% 

100%? div並非絕對定位,所以答案是它的父母。父母是身體。

身體有多高?沒有指定:默認爲autoauto意思是身體的高度是根據其內容的高度來計算的。 Quirks模式中的錯誤是body的最小高度與視口相匹配。

將html和body設置爲height: 100%以在標準模式下真正獲得100%。

0

我討厭這麼說,但有時在不得不使用舊版瀏覽器的時候,使用老派技術有時會讓工作更快完成。嘗試<表>標籤。 :(

<table style="height: 100%; width:400px; background-color: Green; "> 
    <tr> 
     <td style="height: 100%; width: 25%; background-color: Red; overflow:auto;"> 
      LongString:<br /> 
      Stuffsdfsfdsdfsfsdfdfsdfsdfsdfsdfsdxgsdfgsdfgsdgiusdfgiudfgifdgu 
     </td> 
     <td style="height: 100%; width: 75%; background-color: Pink; "> 
      Stuff 
      <br /> 
      More stuff 
      <br /> 
      And some more 
     </td> 
    </tr> 
</table>