2008-08-29 16 views
9

में पेरेंट तत्व की चौड़ाई पर ध्यान नहीं देता मैं एक तालिका में निम्न पाठ क्षेत्र हैपाठ क्षेत्र IE7

<table width="300"><tr><td> 

<textarea style="width:100%"> 
longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring 
</textarea> 

</td></tr></table> 
पाठ क्षेत्र में एक लंबी स्ट्रिंग के साथ

, पाठ क्षेत्र से बाहर फैला है IE7 में एक पंक्ति में यह समायोजित करने के लिए , लेकिन अन्य ब्राउज़रों में इसकी 300 पीएक्स चौड़ाई बरकरार रखती है।

आईई में इसे ठीक करने के तरीके के बारे में कोई विचार?

उत्तर

0

आप का प्रयास किया ...

overflow: hidden;

??

overflow: scroll; 

संपादित करें::

मैं वास्तव में परीक्षण किया

मुझे यकीन है कि अगर यह पाठ क्षेत्र की तालिका में होना चाहिए ... थोड़ा

0

प्रयोग या, कैसे के बारे में नहीं हूँ इस। मुझे लगता है कि व्यवहार ऐसा है क्योंकि चौड़ाई तालिका पर है, जो मुझे विश्वास है (मेरे पास इसे वापस करने के लिए कुछ भी नहीं है) मैंने बहुत पहले पढ़ा था कि तालिका चौड़ाई चौड़ाई सुझाई गई है, लेकिन इसकी सामग्री को समायोजित करने के लिए विस्तारित किया जा सकता है। निश्चित नहीं। मुझे पता है कि आप तालिका के बजाय <DIV> का उपयोग करते हैं, यह काम करता है। इसके अतिरिक्त, यदि आप <TABLE> तत्व के विपरीत 30012 पिक्सल चौड़ाई को <TD> तत्व पर लागू करते हैं, तो यह भी काम करता है। इसके अलावा, overflow: scroll कुछ भी नहीं करता है! : पी

अच्छा, मज़ाकिया आईई व्यवहार, निश्चित रूप से!

0

आईई word-break सीएसएस 3 संपत्ति का भी समर्थन करता है।

4

चौड़ाई td पर लागू करें, table पर नहीं।

संपादित करें: @Emmett - चौड़ाई सीएसएस के माध्यम से आसानी से लागू की जा सकती है।

td { 
    width: 300px; 
} 

वांछित परिणाम उत्पन्न करता है। या, यदि आप jQuery का उपयोग कर रहे हैं, तो आप चौड़ाई स्क्रिप्ट के माध्यम से जोड़ सकते हैं:

$('textarea[width=100%]').parent('td').css('width', '300px'); 

प्वाइंट जा रहा है, वहाँ एक से अधिक तरीके एक मेज सेल करने के लिए एक चौड़ाई लागू करने के लिए है, यदि विकास की कमी इसे सीधे लागू करने से रोक ।

2

@Peter Meyer, Jim Robert

मैं अलग अतिप्रवाह मूल्यों की कोशिश की, कोई लाभ नहीं हुआ।

रैप विशेषता और शब्द-रैप शैली के लिए अलग-अलग मानों के साथ प्रयोग करना भी उपयोगी नहीं था।

संपादित करें:

, @dansaysseanb

कुछ अजीब आवेदन विशेष कमी के कारण, चौड़ाई केवल तालिका के लिए आवेदन किया जा सकता है।

@travis

सेटिंग शैली = "शब्द-तोड़: तोड़-सब," काम की तरह! यह अभी भी आईई 7 और एफएफ में अलग-अलग लपेटता है। यदि कुछ भी बेहतर नहीं होता है तो मैं यह जवाब स्वीकार करूंगा।

0

बेस्ट बात मैं यह काम करते हैं, एक छोटे से hacky बनाने के लिए मिल सकता है: <div style="width:300px; overflow:auto;"> साथ
रैप पाठ क्षेत्र अतिप्रवाह मूल्य

0

अतिप्रवाह संपत्ति जाने के लिए रास्ता नहीं है के साथ चारों ओर खेलने के लिए चाहते हो सकता है। विशेष रूप से, यदि आप अतिरिक्त टेक्स्ट को अनदेखा करना चाहते हैं, तो आप पाठ पर एक सीएसएस संपत्ति के रूप में "ओवरफ्लो: छुपा" का उपयोग कर सकते हैं।

आम तौर पर, जब किसी ब्राउज़र में एक अटूट ऑब्जेक्ट होता है, जैसे रिक्त स्थान के बिना लंबी स्ट्रिंग, तो यह विभिन्न आकार की बाधाओं के बीच एक संघर्ष हो सकता है - स्ट्रिंग (लंबे) बनाम इसके कंटेनर (शॉर्ट) के बीच। यदि आप विभिन्न ब्राउज़रों में अलग-अलग व्यवहार देखते हैं, तो वे इस संघर्ष को अलग-अलग हल कर रहे हैं।

वैसे, लंबी तारों के लिए एक अच्छी चाल उपलब्ध है - <wbr> टैग। आपके ब्राउज़र longstringlongstring देखता है, तो यह कोशिश करेंगे एक एकल, अटूट स्ट्रिंग के रूप में कंटेनर में फिट करने के लिए - लेकिन अगर यह फिट नहीं कर सकते, यह WBR पर छमाही में कि स्ट्रिंग टूट जाएगा। यह मूल रूप से एक ब्रेक प्वाइंट है, जहां संभव हो तो वहां तोड़ने के लिए एक निहित अनुरोध नहीं है (मुद्रित ग्रंथों में एक हाइफ़न की तरह)। वैसे, सफारी और ओपेरा के कुछ संस्करणों में यह थोड़ी छोटी गाड़ी है - अधिक के लिए this quirksmode page देखें।

1

एक और बहुत hacky विकल्प है, तो आप बाधाओं का एक बहुत कुछ के साथ फंस अगर हैं, लेकिन क्या आसपास के डोम की तरह दिखाई देगा पता है:

style="width:100%;width:expression(this.parentNode.parentNode.parentNode.parentNode.width +'px')" 

सुंदर नहीं है, लेकिन IE7 में काम करता है।
jquery या इसी तरह का उपयोग करना एक बहुत ही स्वच्छ समाधान होगा, लेकिन यह आपके पास मौजूद अन्य बाधाओं पर निर्भर करता है।

0

मैंने पहले इस समस्या में भाग लिया है। यह HTML से तालिका और सेल चौड़ाई को पार करने के तरीके से संबंधित है।

आप ठीक एक चौड़ाई के रूप में 300 स्थापित कर रहे हैं जब तक तत्व की सामग्री के रूप में है कि अधिक नहीं कर सकते हैं (अंदर एक निश्चित चौड़ाई के साथ एक div की स्थापना और एक अतिप्रवाह नियम मेरा पसंदीदा तरीका है)।

लेकिन इसके बाद के संस्करण की तरह एक समाधान अनुपस्थित, मिनट किसी भी तत्व यह है कि चौड़ाई अतीत आप धक्का, सभी दांव बंद कर रहे हैं। तत्व व्यापक रूप से बन जाता है क्योंकि इसे सामग्री को समायोजित करना होता है।

अतिरिक्त टिप - अपने चौड़ाई मूल्यों डिब्बे में बंद जो कुछ भी उद्धरण के सेट घोंसला होगा मूल्य ठीक से (<table width='300')। अगर कोई साथ आता है और इसे% में बदल देता है, तो यह% को अनदेखा कर देगा, अन्यथा।

दुर्भाग्य से, आप हमेशा मुसीबत तोड़ने तार IE में 'प्राकृतिक' ब्रेक की जरूरत नहीं है कि, जब तक आप कोड के माध्यम से उन्हें तोड़ने की कुछ कर सकते हैं करने जा रहे हैं।

2

एक और hacky विकल्प है, लेकिन एक ही विकल्प है कि मेरे लिए काम करता है - इस पृष्ठ पर अन्य सुझावों में से कोई भी है - एक निश्चित तालिका लेआउट के साथ एक एकल कक्ष तालिका में पाठ क्षेत्र रैप करने के लिए है।

<table style="width:100%;table-layout:fixed"><tr><td> 
<textarea style="width:100%">longstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstringlongstring</textarea> 
</td></tr></table> 
0

के लिए इस मुद्दे को आप अपने पाठ में स्थान का उपयोग का समाधान है, और आप भी इस कोड

overflow:hidden 
0

का उपयोग दें pixels.this में चौड़ाई ठीक से काम करना चाहिए