2008-09-06 8 views
18

एचटीएमएल Textarea तत्वों का ही लपेट जब वे एक अंतरिक्ष या टैब वर्ण तक पहुँचते हैं। यह ठीक है, जब तक कि उपयोगकर्ता एक looooooooooooooooooooooong पर्याप्त शब्द टाइप नहीं करता है। मैं लाइन ब्रेक को सख्ती से लागू करने का एक तरीका ढूंढ रहा हूं (उदाहरण के लिए: भले ही इसका परिणाम "loooooooooooo \ n ooooooooooong") हो।सबसे सुरुचिपूर्ण रेखा रैप करने के लिए एक पाठ क्षेत्र तत्व के लिए मजबूर करने के लिए रास्ता, * परवाह किए बिना * खाली स्थान के

alt text

सबसे अच्छा मैंने पाया कि हर पत्र के बाद एक शून्य चौड़ाई यूनिकोड अंतरिक्ष जोड़ने के लिए है, लेकिन यह टूट जाता है कॉपी और पेस्ट आपरेशन। किसी को बेहतर तरीके से पता है?

नोट: - पाठ का सिर्फ एक सादे पुराने ब्लॉक मैं तत्व "पाठ क्षेत्र" यहाँ हैं (यानी .: एक है कि एक पाठ इनपुट की तरह ही बर्ताव करता है) की चर्चा करते हुए कर रहा हूँ।

उत्तर

8

सीएसएस word-wrap:break-word सेटिंग्स और text-wrap:unrestricted सीएसएस 3 सुविधाओं दिखाई देते हैं। शुभकामनाएं वर्तमान कार्यान्वयन पर ऐसा करने का एक तरीका ढूंढ रही हैं।

+1

बस एहसास हुआ कि फेसबुक एक बहुत अच्छा काम करता है अपने रूपों के साथ नौकरी, मुझे वहां जाना होगा और देखें कि वे क्या कर रहे हैं। या तो जब तक ब्राउज़र आपके द्वारा उल्लेख किए गए गुणों का समर्थन नहीं करता है - तब तक जावास्क्रिप्ट की एक हजार लाइनों को बर्बाद करने के लिए मेरी कठिनाई को तोड़ देता है जो अंततः इतना आसान होगा – username

+0

यह लंबा नहीं होगा (ये ये ये ये है)! फ़ायरफ़ॉक्स में नई डेवलपर विशेषताएं 3.1 "शब्द-लपेटें: यह नव-समर्थित संपत्ति सामग्री को निर्दिष्ट करती है कि ओवरफ्लो को रोकने के लिए लाइनों को तोड़ दिया जा सकता है या नहीं, जब एक अन्यथा अटूट करने योग्य स्ट्रिंग एक पंक्ति पर फिट होने के लिए बहुत लंबी होती है।" – username

+0

बढ़िया! मुझे खुशी है कि यह तेजी से साथ आ रहा है; यह बिना मूर्खतापूर्ण विशेषता है। –

2

कि WBR अमानक तत्व कम से कम

फ़ायरफ़ॉक्स, http://developer.mozilla.org/En/HTML/Element

इंटरनेट एक्सप्लोरर, http://msdn.microsoft.com/en-us/library/ms535917(VS.85).aspx

और ओपेरा द्वारा समर्थित है नहीं है।

+1

afaik आप एक पाठ क्षेत्र के अंदर HTML तत्वों डालने नहीं जा सकते हैं, ताकि – username

+0

काम नहीं करेगा आप सही हैं। लेकिन संशोधनों पर एक नज़र डालें ... इस समय कोई "textarea" उल्लेख नहीं किया गया था;) – VolkerK

0

मैं परीक्षण किया <WBR>, & # 8203; और & शर्मीला; तकनीकें। आईई 7, फ़ायरफ़ॉक्स 3 और क्रोम में सभी तीनों ने अच्छी तरह से काम किया।

केवल एक ही है कि कॉपी/पेस्ट नहीं तोड़ा <WBR> टैग किया गया था।

+1

afaik आप टेक्स्टटेरा के अंदर HTML तत्व डालने नहीं जा सकते हैं, इसलिए यह काम नहीं करेगा – username

0

मेरी परीक्षण के अनुसार, केवल फ़ायरफ़ॉक्स मौजूदा ब्राउज़र के बीच वर्णित व्यवहार है। तो मुझे लगता है कि फ़ायरफ़ॉक्स 3 की आगामी रिलीज की प्रतीक्षा करना आपकी सबसे अच्छी शर्त है।1 आपकी समस्या :)

2

हल करने के लिए पाठ क्षेत्र चौड़ाई आकार में लंबे शब्द को तोड़ने: IE8 संगतता जोड़ने के लिए

textarea { word-break: break-all; } 

2):

1) आधुनिक ब्राउज़रों के लिए

textarea { -ms-word-break: break-all; } 

https://msdn.microsoft.com/en-us/library/ms531184%28v=vs.85%29.aspx

3) जोड़ने IE11 अनुकूलता हैक:

Internet Explorer 11 word wrap is not working

@media all and (-ms-high-contrast:none) { 
*::-ms-backdrop, textarea { white-space: pre; } 
} 

इस कोड को उस पर ठीक काम कर रहा है:

यानी 11, क्रोम 51, फ़ायरफ़ॉक्स 46 (विंडोज 7) ;

-IE 8, क्रोम 49, फ़ायरफ़ॉक्स 18 (विंडोज एक्सपी);

-Edge 12.10240, ओपेरा 30 (विंडोज 10);

+0

'शब्द-ब्रेक: ब्रेक-सब' ने किया! tyvm – asgs

0

सबसे खूबसूरत तरीका स्वचालित रूप से ब्राउज़र अपने आप का उपयोग करता है जैसे कि वह wrap="off" था सब पर लपेटकर नहीं है, हालांकि पिछले एक wrap="off" अक्सर के रूप में की जरूरत नहीं है के लिए पूरे शब्द या वर्ण के द्वारा रैपिंग के लिए wrap="hard" या wrap="off" लपेटकर के लिए wrap="soft" उपयोग करने के लिए है।
उदाहरण:

<textarea name="tbox" cols="24" rows="4" wrap="soft"></textarea> 
संबंधित मुद्दे