2012-02-16 4 views
20

http://jsfiddle.net/L2yLe/प्रतिशत चौड़ाई के साथ टेबल सेल में लंबे शब्द को तोड़ें

मूर्ख यह सब कहता है। मैं एक सीएसएस-केवल समाधान चाहता हूं जो तालिका की चौड़ाई को div की चौड़ाई तक सीमित करता है। लंबी स्ट्रिंग टूटा जाना चाहिए (लेकिन जैसा कि आप देख सकते हैं कि यह नहीं है), और यह तालिका को बहने का कारण बनता है।

मैं किसी भी पिक्सेल चौड़ाई का उपयोग नहीं करना चाहता। यह पूरी तरह से तरल पदार्थ होना चाहिए।

<div> 
<table> 
    <tr> 
     <td> 
      short string 
     </td> 
     <td> 
somereallylongstringofdatasomereallylongstringofdatasomereallylongstringofdata 
     </td> 
     <td> 
      short string 
     </td> 
    </tr> 
</table> 
</div> 

div { 
    width: 50%; 
    background-color: darkgray; 
    padding: 15px; 
    margin: 10px auto; 
} 
table { 
    border-collapse: collapse; 
} 
td { 
    border: 1px solid black; 
} 
+0

आप div को 'ओवरफ़्लो: छुपा' पर सेट कर सकते हैं। यह तालिका के देखने योग्य क्षेत्र को सही चौड़ाई तक रखेगा लेकिन सामग्री अभी भी बहती रहेगी और बस छिपी जाएगी। मुझे यकीन नहीं है कि आप जो पूछ रहे हैं वह संभव है। – Jeff

+0

@ जेफ शायद नहीं हो सकता, मैं बस जांच कर रहा था। दुर्भाग्यवश, मुझे देखने योग्य सामग्री की आवश्यकता है। –

उत्तर

26

दोस्तों http://blog.kenneth.io/blog/2012/03/04/word-wrapping-hypernation-using-css/

/* Warning: Needed for oldIE support, but words are broken up letter-by-letter */ 
    -ms-word-break: break-all; 
    word-break: break-all; 

    /* Non standard for webkit */ 
    word-break: break-word; 

    -webkit-hyphens: auto; 
    -moz-hyphens: auto; 
    -ms-hyphens: auto; 
    hyphens: auto; 
+1

बिल्कुल सही, धन्यवाद :) – ConorLuddy

+2

हम कार्यालय नेटवर्क में लिंक देखने में सक्षम नहीं हैं, कृपया लिंक के बजाय कुछ कोड पोस्ट करें। :( –

+0

प्रेस्टो में काम नहीं कर रहा है – Andrey

1

एक CSS3 संपत्ति नहीं है: word-wrap: break-word; ... ओएफसी कि CSS3 के समर्थन के लिए ब्राउज़र की आवश्यकता है।

+0

यह काम नहीं करता है। पहेली को संपादित करने का प्रयास करें। –

+1

'शब्द-लपेटें: ब्रेक-शब्द' केवल सेट पिक्सेल चौड़ाई के साथ काम करता है। मैंने पहेली को संपादित किया और जल्दी से यह पाया। –

10

लिखने इस:

table { 
border-collapse: collapse; 
    table-layout: fixed; 
    width:100% 
} 
td { 
    border: 1px solid black; 
    word-wrap:break-word; 
} 

चेक करें: http://jsfiddle.net/L2yLe/7/

+2

यह वास्तव में अच्छी तरह से काम करता है, लेकिन एकमात्र समस्या यह है कि मैं कुछ कॉलम दूसरों की तुलना में व्यापक होना चाहता हूं .. निश्चित तालिका लेआउट आपको पिक्सेल चौड़ाई के साथ कॉलम का आकार बदलने की अनुमति नहीं देता है। –

1

मैं थोड़ी देर के लिए इस के साथ arround खेल रहा है, और इसकी बिल्कुल भी साबित करना आसान नहीं।

मैंने लंबे पाठ को एक div और शब्द में लपेट लिया है, लेकिन टीडी सेल अभी भी पूरी चौड़ाई तक चला गया है, भले ही div ने पाठ को लपेट लिया हो।

मेरे पास एक समाधान है, लेकिन इसके बजाय एक बहु पंक्ति तालिका में जोड़ने के लिए बहुत कुछ संभवतः अत्यधिक होगा, अगर मैं किसी और को इसमें सुधार कर सकता हूं, तो मैं यहां डालूंगा, मेरे पास कोई HTML डेवलपर नहीं है और बस अपने आप को तर करने के लिए शुरू कर दिया है, लेकिन यहां

mixed table solution

मैं मूल टीडी के अंदर एक और तालिका में बड़े पाठ रखा और लेआउट के लिए कि तालिका निर्धारित किया है जाता है: तय; चौड़ाई 100%। क्या चल रहा है यह दिखाने के लिए सीमा भी जोड़ा। यह थोड़ा सा क्रॉबर है, मुझे उम्मीद है कि कोई और इसे सुधार सकता है।

0

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

1

मेरा समाधान थोड़ा बदसूरत है। लेकिन यह वास्तव में अच्छी तरह से काम करता है। या तो जेएस या जो कुछ भी अपना एचटीएमएल उत्सर्जित कर रहा है, आप टेक्स्ट के प्रत्येक एक्स अक्षरों के बीच <wbr> डाल सकते हैं। यह ब्राउज़र को शब्दों को तोड़ने के बारे में अपना निर्णय लेने देता है, लेकिन दृष्टि से, यह तालिका स्ट्रिंग में फिट होने पर एक स्ट्रिंग के रूप में दिखाई देगा।

2

जोड़ा जा रहा है पर एक नज़र रखना "word-break: break-all;" काम करेंगे!

यह Example देखें।

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