2010-12-12 12 views
33

मेरे पास ले जाता है:दो कॉलम तालिका: संभव के रूप में एक के रूप में छोटे, अन्य एक div में एक करने के लिए कॉलम तालिका बाकी

<div> 
<table> 
    <tbody> 
    <tr> 
     <td class="action" > 
     <a> ✔ </a> 
     </td> 
     <td class="content"> 
     <p>Bigger text...(variable size).......</p> 
     </td> 
    </tr> 
    <tr> 
     <td class="action" > 
     <a> ✔ </a><a> ✘ </a> 
     </td> 
     <td class="content"> 
     <p>Bigger text...(variable size).......</p> 
     </td> 
    </tr> 
     ... same structure in all the table 
    </tbody> 
</table> 
</div> 

और मैं "कार्रवाई" स्तंभ की तरह सामग्री फिट करने के लिए होता है, और बाकी सामग्री उपलब्ध कराने के लिए "सामग्री" कॉलम। "क्रिया" कॉलम दाएं संरेखण के साथ बेहतर दिखाई देगा। तालिका को कंटेनर की चौड़ाई के 100% फिट भी होना चाहिए।

कॉलम चौड़ाई को ठीक किए बिना ऐसा करने का कोई तरीका है?

मैं इस के साथ करने की कोशिश की:

table .action 
{ 
    width:auto; 
    text-align:right; 
} 
table 
{ 
    border-collapse:collapse; 
    border-spacing:0; 
    width:100%; 
} 

लेकिन बाएँ कॉलम तालिका के आधे लेता है ...

उत्तर

25

सामग्री td एक 100% चौड़ाई यह जितना अंतरिक्ष लेने के लिए यह बाध्य करेगा देते कर सकते हैं, तो .content{ width: 100% } काम करना चाहिए।

यह सुनिश्चित करने के लिए x और चेकमार्क एक-दूसरे के बगल में रहने के लिए white-space: nowrap पर प्रतिक्रिया दें। अन्यथा सामग्री एक और स्थान ले जाने और एक दूसरे के नीचे आइकन को मजबूर करने में सक्षम हो जाएगा।

table .action 
 
{ 
 
    width:auto; 
 
    text-align:right; 
 
    white-space: nowrap 
 
} 
 
table .content { 
 
    width: 100% 
 
} 
 
table 
 
{ 
 
    border-collapse:collapse; 
 
    border-spacing:0; 
 
    width:100%; 
 
    border: 1px solid 
 
}
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td class="action" > 
 
     <a> ✔ </a> 
 
     </td> 
 
     <td class="content"> 
 
     <p>Bigger text...(variable size).......</p> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td class="action" > 
 
     <a> ✔ </a><a> ✘ </a> 
 
     </td> 
 
     <td class="content"> 
 
     <p>Bigger text...(variable size).......</p> 
 
     </td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+0

सफेद-अंतरिक्ष के साथ काम किया में व्यापक तत्व की तुलना में छोटे हो रहा से यह बंद हो जाएगा: nowrap धन्यवाद! – Julien

+0

क्या टेबल के बिना ऐसा करने का कोई तरीका है लेकिन इसके बजाय div? – Atmocreations

+0

निश्चित रूप से, बस 'डिस्प्ले: टेबल-सेल' प्रॉपर्टी का उपयोग करें (शायद उनके आस-पास के डिव पर 'डिस्प्ले: टेबल-पंक्ति' भी) और उन्हें एक टेबल की तरह व्यवहार करना चाहिए –

7

मैं इस सवाल का जवाब जब कई संभव के रूप में के रूप में छोटे से एक स्तंभ बनाने की कोशिश कर पाया।

सामग्री देना td एक 1% width इसे जितना संभव हो उतना छोटा स्थान लेने के लिए मजबूर करेगा, इसलिए .content{ width: 1% } मेरे लिए काम किया।

+0

किसी ने पहले ही यह जवाब घटा दिया है - लेकिन क्या मैं पूछ सकता हूं क्यूं कर? यह मुझे स्पष्ट नहीं है कि यह करने के लिए एक अवांछनीय बात क्यों है। – samjewell

+0

मुझे यकीन नहीं है, लेकिन मुझे लगता है कि यह आवश्यकताओं के अनुरूप नहीं है: कॉलम जितना संभव हो उतना छोटा होना चाहिए, लेकिन सामग्री दिखाई देनी चाहिए। ऐसा लगता है कि 1% या 1 पीएक्स कॉलम के साथ, यह काम नहीं करेगा। – Julien

+0

मुझे लगता है कि समस्या यह है कि आप सामग्री कॉलम 1% बनाने के लिए कहते हैं जब यह क्रिया कॉलम होना चाहिए था। मुझे लगता है कि आपका विचार अच्छा है, आपने इसे अभी मिश्रित किया है, हालांकि उसे एक डाउनवोट वारंट नहीं करना चाहिए, बल्कि केवल एक सुधार करना चाहिए। आपकी विधि का एक फायदा यह है कि मुझे लगता है कि यह कुछ स्थितियों को बेहतर तरीके से संभालेगा। यदि 2 कॉलम हैं, तो स्वीकृत 100% उत्तर कार्य करता है। लेकिन अगर 4 कॉलम हैं तो क्या होगा, और आप चाहते हैं कि पहले 3 स्वचालित रूप से अपनी चौड़ाई समायोजित करें, लेकिन चौथा कॉलम जितना संभव हो उतना छोटा होना चाहिए। उस स्थिति में, आपका 1% काम करता है, जहां 100% नहीं होगा। – ldkronos

2

कॉलम width: 1px & white-space: nowrap सेट करें।

यह सुनिश्चित करने के लिए कोशिश करेंगे यह 1px लेकिन nowrap उस स्तंभ

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