2010-04-13 14 views
5

मेरे पास एक div के अंदर एक HTML तालिका है। Div की ऊंचाई div में अन्य तत्वों पर आधारित है।div की ऊंचाई सेट नहीं होने पर HTML तालिका की ऊंचाई = पैरेंट div की ऊंचाई कैसे हो सकती है

तालिका की ऊंचाई मेरे मूल div की ऊंचाई के बराबर कैसे हो सकती है?

(तालिका ऊंचाई: 100% क्योंकि div की ऊंचाई सेट नहीं है काम नहीं करेगा)

अद्यतन: मैं IE6,7,8 समर्थन करने के लिए इतना सीएसएस सिफारिशों इन ब्राउज़रों द्वारा समझा जाना चाहिए की जरूरत है।

+0

पैरेंट div पर ऊंचाई क्यों नहीं हो सकती है? – quoo

+0

क्योंकि अगर कोई फ़ॉन्ट का आकार बदलता है या यदि अधिक सामग्री है तो मैं ऊंचाई को बाधित नहीं करना चाहता हूं। सामग्री को फिट करने के लिए ऊंचाई समायोजित करनी चाहिए। –

उत्तर

-1

100% की तालिका ऊंचाई को अपने मूल div कंटेनर में जो भी स्थान उपलब्ध है उसे भरना चाहिए। यदि आप पैरेंट div पर ऊंचाई सेट नहीं कर सकते हैं, तो सीएसएस के बजाय तालिका पर height="100%" का उपयोग करने का प्रयास करें। मुझे पता है, यह अर्थात् सही नहीं है लेकिन टेबल कभी-कभी divs के साथ थोड़ा विचित्र काम करते हैं।

+0

मैंने आईई 8 और एफएफ 3.6 की कोशिश की और यह –

+0

काम नहीं किया है आपके पास अपने पृष्ठ पर एक वैध डॉकटाइप है? –

1

लगभग असंभव है, क्योंकि रेंडरर यह नहीं जान सकता कि 100% कितना होना चाहिए।

एक वास्तव में गंदे कामकाज: display:tablediv और display:table-row-group तालिका में जोड़ें। positing और height:auto - बहुत ज्यादा ... :)

+0

इसका आईई 8 में कोई प्रभाव नहीं पड़ा। एफएफ में यह एक लिट का विस्तार करता है लेकिन यह पूरी ऊंचाई नहीं लेता है। –

1

कोशिश का उपयोग करने के position:relative और min-height:100%;

Mb भी posinion:absolute, top:xxx, bottom:xxx, right:xxx और left:xxx उम्मीद नहीं है।

0

केवल सीएसएस के साथ आप जो बात कर रहे हैं उसे प्राप्त करने के लिए काफी मुश्किल हो सकता है। आप माता-पिता div की ऊंचाई को पकड़ने के लिए जावास्क्रिप्ट, jQuery या किसी अन्य जावास्क्रिप्ट पुस्तकालयों का उपयोग करने का प्रयास कर सकते हैं और फिर तालिका में ऊंचाई के रूप में लागू कर सकते हैं। नीचे उदाहरण देखें। इससे कोई फर्क नहीं पड़ता कि टेक्स्ट कितना जोड़ा जाता है, यह मूल div के आधार पर गतिशील रूप से तालिका की ऊंचाई सेट करता है। यह अविभाज्य जावास्क्रिप्ट नहीं है - लेकिन यह आपको शुरू करना चाहिए।

<html> 
    <head> 
     <title>Table Height set via jQuery</title> 
     <script src="jquery.js" type="text/javascript" charset="utf-8"></script> 

     <script type="text/javascript" charset="utf-8"> 
      $(document).ready(function(){ 
       var divHeight = $('div.full').height(); 
       $('table.column_2').css("height", divHeight + "px"); 
       $('table.column_2 .parentDiv').text(divHeight); 
       var tableHeight = $('table.column_2').height(); 
       $('table.column_2 .tableHeight').text(tableHeight); 
      }); 
     </script> 
     <style type="text/css" media="screen"> 
      div.full { 
       width:960px; 
       float:left; 
       } 
      div.column_1 { 
       width:450px; 
       padding:0 10px; 
       float:left; 
       margin-right:10px; 
       background-color:#eee; 
      } 
      table.column_2 { 
       width:470px; 
       float:left; 
       background-color:#ddd; 
      } 
     </style> 
    </head> 

    <body> 
     <div class="full"> 
      <div class="column_1"> 
       <p> 
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore 
        magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 
        consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 
        pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim 
        id est laborum. 

       </p> 

      </div> 
      <table class="column_2"> 
       <thead> 
        <tr> 
         <th>Table Height</th> 
         <th>Parent Div Height</th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td class="tableHeight"></td> 
         <td class="parentDiv"></td> 
        </tr> 
       </tbody> 
      </table> 
     </div> 
    </body> 
</html> 
0

बुरी खबर, आप नहीं कर सकते। उनके लिए इतने सारे हैक्स हैं और उनमें से कोई भी अच्छे समाधान नहीं हैं। वर्णित जावास्क्रिप्ट इसे करने का एकमात्र तरीका है, लेकिन यह छोटी चीजों पर बहुत अधिक बैंडविड्थ लेता है लेकिन उपयोगी है अगर आप अन्य कार्यों के लिए jQuery का उपयोग करने की योजना बना रहे हैं।

सीएसएस 3 में नए नियम हैं जो आपको लचीलापन देते हैं लेकिन कई ब्राउज़र पूर्ण सीएसएस 3 समर्थन प्रदान नहीं करते हैं। चूंकि आप आईई 6/7 चाहते थे, तो आप भाग्य से बाहर हैं।

यदि यह वास्तव में महत्वपूर्ण है, तो न्यूनतम तालिकाओं का उपयोग करना ठीक है। दूसरों को यह बताने न दें कि यह गलत है जब यह लगभग सभी डेस्कटॉप ब्राउज़र के लिए काम करता है और यहां तक ​​कि मोबाइल ब्राउज़र तब तक ठीक काम करते हैं जब तक कि वे दो स्तरों से अधिक गहराई से घोंसले न हों।

एक और समाधान लेआउट डिज़ाइन बनाना है जो अन्य डीआईवी की ऊंचाइयों की जांच पर निर्भर नहीं है।

संबंधित मुद्दे