2009-02-26 19 views
17

% 100:DIV streç bir düzen şu var Tablo hücresi

4 köşe arka plan ve iki panel (sol panel ve sağ panel) içindeki yuvarlanır.

Tablo 9 ile hücreleri: şu şekildedir:

Şu anda düzeni uygulamak

 
top left corner |     | top right corner 
        |left div right div| 
bottom left corner |     | bottom right corner 

Kodu:

<!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"> 
<body> 
    <table id="content" width="100%" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td> 
       <img src="corner1.jpg" /></td> 
      <td> 
      </td> 
      <td> 
       <img src="corner2.jpg" /></td> 
     </tr> 
     <tr> 
      <td> 
       &nbsp;</td> 
      <td valign="top" height="100%"> 
       <div id="menu" style="float: left; width: 235px; height: 445px; background-color: #660000"> 
        Menu 
       </div> 
       <div id="mainContent" style="float: left; margin-left: 10px; height: 100%; background-color: #888888"> 
        Main Content 
       </div> 
      </td> 
      <td> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <img src="corner3.jpg" /></td> 
      <td> 
      </td> 
      <td> 
       <img src="corner4.jpg" /></td> 
     </tr> 
    </table> 
</body> 
</html> 

Ne sormak istiyorum ben yüksekliğini uzatabilirsiniz nasıl 100% için sağdaki div, td'nin yüksekliğine eşittir (kullanıcıların hareketine göre sol divanın yüksekliği artar).

Birçok yolu denedim ve yine de bunu çözemiyorum. için div yüksekliğinin yüksekliği% 100 çalışmıyor.

Bunu yapmak için ne yapmalıyım? Tabloyu kullanma

PS: Kod değiştirilir

. Kodu not defterine yapıştırabilir ve IE numaralı telefondan test edebilirsiniz.

Kod, DOCTYPE eklemek için yeniden düzenlenir.

cevap

4

zaten düzen için tablolar gibi, gerçekten hem "doğru" şekilde yapmaya çalışırken rahatsız olmaz görünce.

Başka bir tablo kullan.
CSS

<style type="text/css" media="screen"> 
     #menu { 
      width:235px; 
      height:445px; 
      background-color:#660000 

     } 
     #mainContent { 

      height:100%; 
      width:auto; 
      background-color:#888888 
     } 
     #container { 
      width:100%; 
     } 
    </style> 

HTML

<table id="content" width="100%" border="0" cellspacing="0" cellpadding="0"> 
<tr> 
    <td><img src="corner1.jpg"/></td> 
    <td>&nbsp;</td> 
    <td><img src="corner2.jpg"/></td> 
</tr> 
<tr> 
    <td>&nbsp;</td> 
    <td valign="top" style="padding:0px;"> 
     <table id="container" border="0" cellspacing="0" cellpadding="0"> 

      <tr> 
       <td id="menu"><div>Menu</div></td> 
       <td style="width:10px"></td> 
       <td id="mainContent"><div>Main Content</div></td> 

      </tr> 
     </table> 
    </td> 
    <td>&nbsp;</td> 
</tr> 
<tr> 
    <td><img src="corner3.jpg"/></td> 
    <td>&nbsp;</td> 
    <td><img src="corner4.jpg"/></td> 
</tr> 
</table> 
+0

Güzel olan. IE6 + FF üzerinde çalışır –

+5

Bir tablo kullanıldığı için, şeyler "yanlış yol" yapıldığı varsayımı, aptalca. Tabular verisini görüntülüyorsam ne olur ve boyuna hücrenin tam yüksekliğine uzatmak istediğim bir eleman içeren her satırda bir hücreye sahip olmak isterim? – Jez

+2

@Jez sorusu, tablo verilerini görüntülemekle ilgili değil, tabloları kullanan bir düzen hakkındadır. Aynı zamanda "sağ" diye de alıntı yaptım, çünkü bazen bunu yapmanın en iyi yolu değil. – garrow

0

Sen ayarlayabilirsiniz ... belki istediğinize işe yarayacak ... sol birinin yüksekliği değerine eşittir sağ div bir min-yükseklik ekleyebilir div'un mutlak olduğu pozisyonu, ama sonra elbette onu kesinlikle konumlandırmanız gerekir.

+0

Bu benim için çalıştı. Pozisyonu ayarladım: üst kaptaki göreceli değer ve pozisyon: mutlak olarak% 100 dikey olarak germek istedim. Yardım için teşekkürler! –

+0

Bu seçenek IE'de çalışmıyor. –

0

Jquery ve divs yükseklikleri ayarlamak için hareketlendirmek çağrısı kullandık, ama çabuk 2,3,5 uğraşırken bazı modelleri için oldu belows sen 0.

için örnek hareketlendirmek hızını ayarlayabilirsiniz. .. blok tasarımları. Jquery animasyon çağrısı ana içerik, kenar çubuğu vb. Için div yüksekliklerini boyutlandırmak için kullanılır ... ancak bu sizin ihtiyacınıza göre biraz daha üstte olabilir.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Mock_2_ColGoldenRatio.aspx.cs" Inherits="ia._HtmlMocks.Mock_2_ColGoldenRatio" %> 

<!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 runat="server"> 
    <title></title> 

    <style type="text/css" > 


/*normalise*/ 
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { 
margin:0; 
padding:0; 
font-size:100%; 
font-style:normal ; 
font-weight:normal; 
border-collapse:collapse ; 
border-spacing:0; 
border:0; 
border-width: 0px ; 
text-align:left; 
} 
q:before,q:after 
{ 
    content:''; 
} 

/*center everything using html container*/ 
html{ 
text-align: center ; 
} 

/* wash with olive ; make body width max 976 px ; no margin ; relative position so other elements within */ 
body 
{ 
background-color:Olive; 
width:976px; 
margin:0 auto ; 
text-align: left ; 
position: relative ; 
} 

#HeaderEnc 
{ 
background-color : Maroon ; 
} 

#SearchEnc{ 
background-color: red ; 
border-width: 0px ; 
} 

#MainBlogNav{ 
background-color:Yellow ; 
} 

/* postion relative to normal flow */ 
#ContentEnc{ 
background-color: Teal ; 
position: relative ; 
} 



    #ContentSideBarA 
    { 
    position: absolute ; 
    background-color: #AAA ; 
    left: 62% ; 
    width: 38% ; 
    } 

    #ContentMainEnc{ 
    position: absolute ; 
    background-color: #888; 
    left: 0% ; 
    width: 62% ; 
    } 

    #ContentSideBarB{ 
    position:absolute ; 
    background-color : #AAA ; 
    left: 0% ; 
    width: 0px ; 
    } 

    #FooterEnc{ 
    position: absolute ; 
    background-color: blue ; 
    left: 0 ; 
    width: 100% ; 
    } 
</style> 
</head> 
<body> 
    <div id="HeaderEnc"> 
    The quick brown fo jumped over the lazy dog. 
    <br /> 
    HeaderEnc 
     <div id="SearchEnc">SearchEnc</div>   
     <div id="MainBlogNav">MainBlogNav</div>   
    </div> 

    <div id="ContentEnc"> 
     <div id="ContentMainEnc"><i>ContentMainEnc</i> : 
      <% Response.Write(GetContentBig()) ; %> 
     </div> 

     <div id="ContentSideBarA"><i>ContentSideBarA</i> 
      <% Response.Write(GetContentSmall()) ; %> 
     </div> 

     <div id="ContentSideBarB"><i>ContentSideBarB</i> 
      <% /*Response.Write(GetContentMedium()) ;*/ %> 
     </div> 

     <i>ContentEnc-Start</i> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     <i>ContentEnc-Start</i> 
    </div> 
    <div id="FooterEnc" >FooterEnc</div> 

</body> 
</html> 


<script src="../../Scripts/jquery-1.3/jquery-1.3.1.js" type="text/javascript"></script> 
<script src="../../Scripts/plugins/dimensions_1.2/jquery.dimensions.js" type="text/javascript" ></script> 
<!--<script src="../../Scripts/Common/IaCommon.js" type="text/javascript" ></script>--> 

<script type="text/javascript" > 

    /* 
    * ia.common 0.1.0 
    * 
    */ 

    var ia = {} 
    ia: "0.1.0"; 

    // gets max settings from set of elements 
    var getBoundaries = function(elements) { 
     var maxHeight = 0; 
     var maxTop = 0; 
     var itemSelector = ''; 
     var itemHeight = 0; 
     var itemPosition = {}; 
     var itemTop = 0; 

     for (i = 0; i < elements.length; i++) { 
      itemSelector = elements[i] 
      itemHeight = $(itemSelector).height(); 
      itemPosition = $(itemSelector).position(); 
      itemTop = itemPosition.top; 
      maxHeight = itemHeight > maxHeight ? itemHeight : maxHeight; 
      maxTop = itemTop > maxTop ? itemTop : maxTop; 
     } 
     return { 'maxHeight': maxHeight, 'maxTop': maxTop }; 
    } 

    // Rets truthy ; used by property get/set public fns 
    var SetIfOk = function(val) { return val; } 

    // IaPage class 
    var IaPage = function(objSpec) { 
     // override default page object with defaults from caller 
     var that = $.extend({ 
      'speedFooterAnimate': 3000 
      , 'speedContentAnimate': 1000 
     }, objSpec || {}); 

     // fn to move footer, ... to correct position : inmann clearing 
     that.arrangePageStructure = function() { 
      boundaries = getBoundaries(this.ContentElements); 
      $(this.FooterEncSelector[0]).animate({ 'top': boundaries.maxTop + boundaries.maxHeight }, this.speedContentAnimate); 
      $(this.ContentEncSelector[0]).animate({ 'height': boundaries.maxHeight }, this.speedFooterAnimate); 
     }; 
     // Ret 
     return that; 
    } 


    var iaPage = IaPage(
    { 
     'ContentEncSelector': ['#ContentEnc'] 
     , 'FooterEncSelector': ['#FooterEnc'] 
     , 'ContentElements': ['#ContentEnc', '#ContentSideBarA', '#ContentMainEnc', '#ContentSideBarB'] 
    } 
    ); 

    $(function() { 
     iaPage.arrangePageStructure(); 
    } 
    ); 

</script> 
1

Veya nasıl sadece bir yayılma kullanmaya ne dersiniz? Örn.,

örn.

<table width="100%"> 
    <tr> 
     <td style="height:540px; width:100%; background-color:green;"> 
      my name is earl! 
     </td> 
    </tr> 

    <tr> 
     <td style="height:540px; width:100%; background-color:yellow;"> 
      <span style="height:100%; display:inline-block; width: 100%; background-color:blue;"> 
       blinkers on! 
      </span> 
     </td> 
    </tr> 
</table> 

tablo elemanları% 100 hakkında çok fazla endişe, daha çok yayılma bakma ..
açıklığı:

 <span style="height:100%; display:inline-block; width: 100%; background-color:blue;"> 
      blinkers on! 
     </span> 

': sıralı blok ekran Bkz? Şimdi bu önemli bir parçasıdır ..
Umarım bu yardımcı olur ..

İlgili konular