2013-04-17 8 views
6

क्या कोई बता सकता है कि नीचे दो टेबल लेआउट समान क्यों नहीं हैं (विशेष रूप से, दूसरा 'टेबल-सेल' div 'टेबल' पैरेंट div की बाकी चौड़ाई को लेने के लिए क्यों नहीं फैलाता है, क्योंकि यह असली टेबल में करता है)?टेबल-सेल स्टाइल तत्व बिना टेबल/टेबल-पंक्ति स्टाइल पैरेंट की शेष चौड़ाई को भरने के लिए स्पष्ट चौड़ाई के बिना क्यों नहीं करता है?

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head></head> 
    <body> 
     <div style="width: 100%; border: 1px solid black;"> 
      <div style="display: table-cell; border: 1px solid red; height: 20px; width: 20px;">.</div> 
      <div style="display: table-cell; border: 1px solid red;">.</div> 
      <div style="display: table-cell; border: 1px solid red; height: 20px; width: 20px;">.</div> 
     </div> 
     <table style="width: 100%; border: 1px solid black; border-spacing: 0;"> 
      <tr> 
       <td style="width: 20px; border: 1px solid red;">.</td> 
       <td style="border: 1px solid red;">.</td> 
       <td style="width: 20px; border: 1px solid red;">.</td> 
      </tr> 
     </table> 
    </body> 
</html> 

संपादित करें: पता चला है कि आप कुछ अनपेक्षित व्यवहार मिलता है अगर आप एक मेज सेल के रूप में एक छवि कोशिश करते हैं और शैली:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head> 
     <style type="text/css"><![CDATA[ 
* {border: 1px solid black;} 
table, .table, .row { 
    width: 100%; 
} 
.table { 
    display: table; 
} 
.row { 
    display: table-row; 
} 
.cell { 
    display: table-cell; 
} 
img { 
    height: 21px; 
    width: 21px; 
} 
    ]]></style> 
    </head> 
    <body> 
    <div class="table"> 
     <div class="row"> 
     <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA 
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 
9TXL0Y4OHwAAAABJRU5ErkJggg==" class="cell" /> 
     <div class="cell"> 
     </div> 
     <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA 
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 
9TXL0Y4OHwAAAABJRU5ErkJggg==" class="cell" /> 
     </div> 
    </div> 
    </body> 
</html> 

2 सेल स्टाइल div क्षैतिज सभी तरह खिंचाव नहीं है तालिका की चौड़ाई को भरने के लिए। यदि आप इसमें सामग्री जोड़ते हैं, तो यह धीरे-धीरे करता है। अजीब।

+0

क्योंकि आपने अपने माता-पिता को 'डिस्प्ले: टेबल' नियम नहीं दिया है? – j08691

+0

इस परीक्षण मामले में सच है, ओह! मैं वास्तविक स्रोत के साथ अपने स्रोत को सरल बना रहा था और ऐसा लगता है कि मैंने अनजाने में उस नियम को हटा दिया और परिणामस्वरूप समस्या कोड को ओवरम्प्लीफाइंग कर दिया! इस मुद्दे के एक अद्यतन डेमो पर काम करना ... – Dave

+0

हाँ, छवियां टेबल-सेल तत्वों में बहुत अच्छी तरह से नहीं बदलती हैं। इसके लायक होने के लिए, टेबल और फ्लेक्सबॉक्स मॉड्यूल के बीच बहुत अधिक ओवरलैप है। क्योंकि केवल मूल तत्व को इसके प्रदर्शन प्रकार को संशोधित करने की आवश्यकता होती है, यह छवियों के साथ बहुत अच्छी तरह से खेलता है (देखें: http://codepen.io/cimmanon/pen/Azone)। – cimmanon

उत्तर

9

जब तक कोई तालिका-कक्ष तत्व का अभिभावक तालिका-पंक्ति तत्व नहीं होता है (और इसका मूल तत्व एक तालिका तत्व है) या तालिका तत्व, अनाम तालिका और तालिका-पंक्ति तत्व आपके लिए डाले जाते हैं। बेनामी तत्वों को स्टाइल नहीं किया जा सकता है।

यदि आप अपने टेबल-सेल तत्वों को पूरी उपलब्ध चौड़ाई लेने के लिए चाहते हैं, तो आपको स्टाइल उद्देश्यों के लिए उन्हें एक स्पष्ट तालिका तत्व बनाना होगा।

http://tinker.io/29b92

<div style="width: 100%; display: table; border: 1px solid black;"> 
     <div style="display: table-cell; border: 1px solid red; height: 20px; width: 20px;">.</div> 
     <div style="display: table-cell; border: 1px solid red;">.</div> 
     <div style="display: table-cell; border: 1px solid red; height: 20px; width: 20px;">.</div> 
    </div> 
-1

आप अन्य तालिकाओं के अंदर टेबल के साथ काम करना चाहिए अगर आप एक ही चौड़ाई का विस्तार करने के अपनी पंक्तियों में से एक चाहते हैं।

इसके अलावा, यदि आपकी मूल तालिका 100% है, तो आपकी बच्ची की मेज 100% भी नहीं हो सकती है, क्या आपने 98% की कोशिश की है?

अपने एचटीएमएल में और बाहरी सीएसएस फ़ाइल को प्रत्येक पंक्ति को दोहराने से रोकने के लिए स्टाइल करें।

यदि यह काम नहीं करता है, तो मुझे बताएं और मैं कोशिश कर सकने वाले अधिक विकल्पों की तलाश में रहूंगा।

+0

यह माता-पिता की चौड़ाई का 100% हो सकता है जब तक कि सीमाओं और/या पैडिंग से बाधा न हो। – BoltClock

+0

सच है, हालांकि उदाहरण में हर बार एक 1px सीमा है। इससे आपको कोई समस्या हो सकती है। हालांकि सिममन ने पहले से ही प्रश्न के लिए एक और वैध जवाब दिया है। धन्यवाद! – CodeSigns

0

जवाब बदलता है कि 'छवियों को तालिका-कक्षों के रूप में विश्वसनीय रूप से शैली नहीं है', लेकिन मैंने अपने प्रारंभिक परीक्षण मामले को गलत तरीके से सरल बना दिया। सबको शुक्रीया!

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