2010-02-13 13 views
63

के बाहर तालिका बहती है मैं एक टेबल को रोकने की कोशिश कर रहा हूं जिसने चौड़ाई को स्पष्ट रूप से घोषित किया है कि उसके माता-पिता div के बाहर बहती नहीं है। मुझे लगता है कि मैं इसे max-width का उपयोग करके किसी भी तरह से कर सकता हूं, लेकिन मुझे यह काम नहीं मिल रहा है।डिवी

निम्नलिखित कोड (एक बहुत छोटी सी खिड़की के साथ) इस कारण होगा:

<style type="text/css"> 
    #middlecol { 
    width: 45%; 
    border-right:2px solid red; 
    } 
    #middlecol table { 
    max-width:100% !important; 
    } 
</style> 

<div id="middlecol"> 
    <center> 
    <table width="400" cellpadding="3" cellspacing="0" border="0" align="center"> 
     <tr> 
     <td bgcolor="#DDFFFF" align="center" colspan="2"> 
      <strong>Notification!</strong> 
     </td> 
     <tr> 
     <td width="50"> 
      <img src="http://www.example.com/img.png" width="50" height="50" alt="" border="0"> 
     </td> 
     <td> 
      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. 
     </td> 
     </tr> 
    </table> 
    </center> 
</div> 

लाल रेखा div की दाईं बॉर्डर है, और अगर आप अपने ब्राउज़र विंडो छोटे बनाने के लिए, आपको लगता है कि देखेंगे तालिका इसमें फिट नहीं है।

+2

ऑफ विषय पर जोड़े जाने के लिए:

का उपयोग नहीं करते ''। इसे वर्षों से हटा दिया गया है। इसके अलावा, आपके पास पहले से ही आपकी तालिका पर 'align = "center" है। –

+0

यह दुर्भाग्य से कुछ है जिसका मेरा कोई नियंत्रण नहीं है। Div के अंदर की सामग्री वास्तव में एक फ़ाइल से शामिल है जो मेरे द्वारा उत्पन्न नहीं होती है। मैं केवल सीएसएस को छू सकता हूं, लेकिन अगर मैं कर सकता तो

को खत्म कर दूंगा। – waiwai933

उत्तर

15

बारी उसके चारों ओर करके:

<style type="text/css"> 
    #middlecol { 
    border-right: 2px solid red; 
    width: 45%; 
    } 

    #middlecol table { 
    max-width: 400px; 
    width: 100% !important; 
    } 
</style> 

इसके अलावा, मैं आपको सलाह होगा:

  • center टैग नहीं का उपयोग करें (यह पदावनत है)
  • width, bgcolor विशेषताओं का उपयोग न करें , उन्हें सीएसएस द्वारा सेट करें (width और background-color)

(यह मानते हुए कि आप तालिका प्रस्तुत किया गया है नियंत्रित कर सकते हैं),

+0

यदि मैं चौड़ाई बना देता हूं: 100% यह मेरे मार्जिन को अनदेखा करता है: दाएं। जो क्षैतिज बार स्क्रॉलिंग – Jesse

-2

मेज पर एक width="400" नहीं है इसे हटाने और यह काम करेगा ...

48

एक कच्चे काम के आसपास युक्त div पर display: table स्थापित करने के लिए है ।

+6

का कारण बनता है यह शानदार है, ठीक वही है जो मैं ढूंढ रहा था। यहां दूसरों की मदद करने के लिए कुछ googleable स्ट्रिंग्स हैं: मैं पैरेंट div को अतिप्रवाह में फिट करने के लिए सीएसएस का उपयोग करने की कोशिश कर रहा था, या ओवरफ्लोइंग टेबल सामग्री को कवर करने के लिए पृष्ठभूमि में फिट था। यह पूरी तरह से काम किया, बहुत बहुत धन्यवाद! – trisweb

+0

बस एक परिशिष्ट, कृपया उस संदर्भ पर ध्यान दें जहां इसे लागू किया जा रहा है, इसका उपयोग व्यवहार के समान तालिका लेआउट प्रदान करने के लिए किया जाता है और इसलिए टेबल-पंक्ति, टेबल-सेल जैसी अन्य शैली विशेषताओं की उपस्थिति का उपयोग किया जाता है। टैब्यूलर लेआउट फ्लोट नहीं किए जाते हैं। समय पर प्रदर्शन: अकेले टेबल संपत्ति पर्याप्त नहीं है – questzen

+0

उत्तर के लिए खोदने के घंटों के बाद भी यहां आया। खोज इंजन के लिए स्ट्रिंग्स: div के अंदर तालिका स्क्रॉल नहीं करेगा, फ़ायरफ़ॉक्स। तालिका के साथ div स्क्रॉल नहीं करेगा, फ़ायरफ़ॉक्स। कोई div के अंदर तालिका दिखाई देने वाला कोई स्क्रॉलबार नहीं। – user2038085

147

आप table-layout:fixed का उपयोग कर तालिकाओं को अपने मूल div से आगे बढ़ाने से रोक सकते हैं।

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

table 
{ 
    table-layout:fixed; 
    width:100%; 
} 

मुझे यह चाल here मिली।

+44

यह सभी स्तंभों को एक ही चौड़ाई के लिए मजबूर करता है ... बहुत उपयोगी नहीं –

+8

वास्तव में आप कॉलम को अलग-अलग चौड़ाई बना सकते हैं, आपको केवल '' या पहली पंक्ति के '' की चौड़ाई निर्दिष्ट करना होगा (बनाम इसे टेक्स्ट आकार के आधार पर प्रवाह देना)। एमडीएन से: "फिक्स्ड: टेबल और कॉलम चौड़ाई तालिका और कॉल तत्वों की चौड़ाई या कोशिकाओं की पहली पंक्ति की चौड़ाई से निर्धारित होती है। बाद की पंक्तियों में कक्ष कॉलम चौड़ाई को प्रभावित नहीं करते हैं।" – philfreo

+1

@philfreo आपने मुझे एक टन मुसीबतों से बचाया। धन्यवाद! – Daria

9

पहले मैंने जेम्स लॉरुक की विधि का उपयोग किया था। हालांकि इसने td की सभी चौड़ाई बदल दी।

मेरे लिए समाधान कॉलम पर white-space: normal का उपयोग करना था (जिसे white-space: nowrap पर सेट किया गया था)। इस तरह पाठ हमेशा टूट जाएगा। word-wrap: break-word का उपयोग करके यह सुनिश्चित होगा कि जब आवश्यक हो तो सब कुछ टूट जाएगा, यहां तक ​​कि एक शब्द के माध्यम से भी आधे रास्ते।

सीएसएस इस तो तरह दिखेगा:

td, th { 
    white-space: normal; /* Only needed when it's set differntly somewhere else */ 
    word-wrap: break-word; 
} 

यह हमेशा की तरह, वांछनीय समाधान हो नहीं हो सकता है के रूप में word-wrap: break-word तालिका अपठनीय में अपने शब्दों को बना सकता है। हालांकि यह आपकी मेज को सही चौड़ाई रखेगा।

+0

बहुत मदद की। उपर्युक्त समाधानों में से कोई भी –

14

मैंने ऊपर वर्णित सभी समाधानों का प्रयास किया, फिर काम नहीं किया। मेरे पास 3 टेबल एक दूसरे के नीचे है। आखिरी बार बहने वाला।मैं का उपयोग कर इसे तय:

/* Grid Definition */ 
table { 
    word-break: break-word; 
} 

बढ़त मोड में IE11 के लिए, आप word-break:break-all

+0

काम करता है जो एक अच्छा सीएसएस है जिसे मैं नहीं जानता था –

0

मैं ऊपर के लगभग सभी की कोशिश की लेकिन मेरे लिए काम नहीं किया को यह निर्धारित करने की आवश्यकता ... निम्नलिखित

किया
word-break: break-all; 

यह माता पिता div (। तालिका के कंटेनर)

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