2013-04-29 5 views
5

मैं एक निश्चित लेआउट में टेक्स्ट लपेटने की कोशिश कर रहा हूं लेकिन टेक्स्ट में स्लेश होने पर यह काम नहीं करता है।टेबल-सेल वर्ड-रैप स्लैश के साथ काम नहीं कर रहा है

क्या यह जावास्क्रिप्ट (शुद्ध सीएसएस) से रिक्त स्थान डाले बिना तय किया जा सकता है?

jsfiddle:

http://jsfiddle.net/HgBhk/1/

Not working: 
<div style="display:table; width:170px; background-color:cyan;"> 
    <div style="display:table-row"> 
     <div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb/dfbfdbdfbfbf/bdffbdbfdfbddfbdfbdfb</div> 
     <div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>   
    </div> 
</div> 

</br> 
Working: 
<div style="display:table; width:170px; background-color:cyan;"> 
    <div style="display:table-row"> 
     <div style="display:table-cell;word-wrap: break-word;">abfdbfdbfdb dfbfdbdfbfbf bdffbdbfdfbddfbdfbdfb</div> 
     <div style="display:table-cell; width:34px; background-color:red;">xxxxx</div>   
    </div> 
</div> 
+1

आप टैब्यूलर डेटा के लिए divs का उपयोग क्यों कर रहे हैं? टैबलेट का उपयोग करें..फनी दुनिया eh ~ लोग लेआउट के लिए टैब्यूलर डेटा और टेबल के लिए divs का उपयोग करते हैं –

+0

दूसरा केस काम करने का कारण रिक्त स्थान की अनुपस्थिति नहीं है। यदि आप रिक्त स्थान हटाते हैं और एक लंबी स्ट्रिंग (पहले मामले के रूप में) है तो यह या तो काम नहीं करेगा। – hexblot

+0

मैं प्रदर्शन के कारण तालिकाओं का उपयोग नहीं कर रहा हूं। मुझे पता है कि इस, पेशेवरों और विपक्ष के बारे में एक लंबी चर्चा है .. –

उत्तर

0

"तालिका" div-तत्व को table-layout:fixed; जोड़ें और सेल के लिए एक चौड़ाई आवंटित यह लाइनों को तोड़ने बनाने के लिए:

JSFiddle

+0

हाँ, लेकिन मैं इसे ठीक नहीं करना चाहता, मैं शेष स्थान –

+0

भरना चाहता हूं फिर 'चौड़ाई: ऑटो;' असाइन करें, कम से कम इसे चौड़ाई का कुछ रूप दें :) [JSFiddle] (http: // jsfiddle। नेट/एचजीबीएचके/5 /) –

+0

शांत, धन्यवाद, मैं जवाब –

1

प्रत्येक ओ के बाद <wbr> टैग या शून्य-चौड़ाई वाली जगह &#x200b; डालें एक स्लैश या अन्य चरित्र का ccurrence जिसे इसके बाद सीधी रेखा तोड़ने की अनुमति के रूप में माना जाना चाहिए। इन विकल्पों के बीच चुनाव थोड़ा complicated है, लेकिन चूंकि आपका कोड पहले से ही IE के पुराने संस्करणों पर काम करने में विफल रहता है, इसलिए आप उन्हें यहां भी अनदेखा कर सकते हैं, और इससे &#x200b; सही विकल्प बन जाएगा। यही है, आप लिखेंगे उदा।

abfdbfdbfdb/&#x200b;dfbfdbdfbfbf/&#x200b;bdffbdbfdfbddfbdfbdfb 

समस्या चरित्र स्तर पर है, स्टाइल की बात नहीं है।

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

+0

के प्रारंभिक पथ को संग्रहीत करना इसका मतलब है कि मुझे पाठ को बदलना है ... javscript के साथ, है ना? शुरुआती सवाल यह था कि जेएस के बिना कैसे करना है, इसके अलावा मुझे पथों पर हाइफेनेशन की आवश्यकता नहीं है। मुझे लगता है कि उत्तर थोड़ा सा विषय है –

+0

यह संदर्भ पर निर्भर करता है कि आप HTML दस्तावेज़ को कैसे संशोधित कर सकते हैं। इसे संशोधित करना * सही ढंग से रैपिंग को संभालने का सही तरीका है (यदि रैपिंग की आवश्यकता है; ज्यादातर मामलों में जब लोग लंबे पथनाम या यूआरएल को दृश्यमान सामग्री में डालते हैं, तो उन्हें छोटे नामों की तरह कुछ सामान्य सामान्य उपयोग करना चाहिए)। मार्गों को निश्चित रूप से हाइफेनेटेड नहीं किया जाना चाहिए; इसके विपरीत, आपको यह सुनिश्चित करना चाहिए कि वे "-" के बाद विभाजित नहीं हैं यदि ऐसा कोई चरित्र वहां दिखाई देता है। सीएसएस * इस तरह की चीज़ों को संभाल नहीं सकता (अब या निकट भविष्य में)। –

+0

आपने मेरा दिन बचाया! धन्यवाद! – shaosh

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