2011-03-07 12 views
24

मेरे पास है जिसमें केवल input टेक्स्ट बॉक्स और 100% पर सेट किया गया है। मुझे लगता है कि यह div भरने की अपेक्षा करता है लेकिन इसके बजाय यह थोड़ा लंबा है।div की सामग्री अब तब div है जब चौड़ाई 100% पर सेट हो जाती है?

प्रदर्शन कोड:

HTML:

<div class="container"> 
    <input class="content" id="Text1" type="text" /> 
</div> 

सीएसएस:

.container 
{ 
    width: 300px; 
    height: 30px; 
    border: thin solid red; 
} 
.content 
{ 
    width: 100%; 
} 

परिणाम (Firefox):

enter image description here

यह HAP आईई 8, क्रोम, सफारी में पेन भी ... ओवरफ्लो चौड़ाई अलग-अलग ब्राउज़रों में भिन्न दिखती है। मैं सामग्री को div की चौड़ाई को भरने के लिए कैसे बना सकता हूं?

उत्तर

83

box-sizing: border-box करने के लिए इसे लागू हो एक त्वरित, आसान तरीका यह तय करने के लिए है। http://jsfiddle.net/thirtydot/QkmSk/301/

.content { 
    width: 100%; 
    box-sizing: border-box; 
} 

See here एक को भावुक IE7 संगत विधि के लिए:

यहाँ एक डेमो है।

+0

तो इस अजीब व्यवहार का कारण क्या है? – drasto

+2

@drasto: तथ्य यह है कि आप एक चौड़ाई: 100% 'लागू कर रहे हैं जिसमें एक सीमा और पैडिंग है। 'सीमा-बॉक्स 'इस सीमा और पैडिंग * के अंदर * चौड़ाई: 100%' गणना सहित इसे ठीक करता है। – thirtydot

+0

तो मैं इसे 'div' से 0 पर पैडिंग सेट कर सकता हूं और सीमा को हटा सकता हूं (यह केवल समस्या दिखाने के लिए है - इसे उत्पादन करने के लिए उत्पादन एचटीएमएल की आवश्यकता नहीं होगी)? – drasto

0

भी अपने पृष्ठ पर एक सीएसएस रीसेट जोड़ें। इनपुट में कुछ पैडिंग जोड़ा जा सकता है!

+0

'ओवरफ़्लो: ऑटो' मदद नहीं करेगा। वास्तव में, यह सिर्फ बदसूरत scrollbars जोड़ देगा। – thirtydot

+0

अच्छा बिंदु। उसको खरोंचो। – benhowdle89

2

आपको पैडिंग, मार्जिन और सीमाओं को रीसेट करने की आवश्यकता है। यदि आप इसे साइटवाइड लागू करना चाहते हैं, तो आप एरिक मेयर की रीसेट सीएसएस का उपयोग कर सकते हैं: http://meyerweb.com/eric/tools/css/reset/

या आप अपना खुद का लिख ​​सकते हैं।

यह will work in all modern browsers, और IE8 +: बस अपने खुद के मानों

0

जब मैं आपके कोड का उपयोग करता हूं, तो यह फ़ायरफ़ॉक्स पर ठीक दिखाता है। मुझे संदेह है कि आपको विनिर्देश के साथ कोई समस्या है: http://htmldog.com/guides/cssadvanced/specificity/

या आसपास के एचटीएमएल में कोई समस्या है। अर्थात। अनजान टैग

यह सीएसएस और एचटीएमएल को एक सादा फ़ाइल में डालने का प्रयास करें ताकि यह सही ढंग से प्रदर्शित हो सके। यदि ऐसा होता है, तो मैं पैरेंट तत्वों के सीएसएस गुणों को देखने का सुझाव देता हूं।

यदि आपके पास पहले से नहीं है, तो फ़ायरफ़ॉक्स के लिए वेब डेवलपर टूलबार डाउनलोड करें, फिर क्लिक करने योग्य तत्व प्रॉपर्टी डिस्प्ले को सक्षम करने के लिए CTRL + SHIFT + F का उपयोग करें। इससे आपको क्या हो रहा है डीबग करने में मदद मिलेगी।

उम्मीद है कि इससे मदद मिलती है।

+1

विशिष्टता या अमान्य HTML के साथ ऐसा करने के लिए कुछ भी नहीं है। मेरे उत्तर का unfixed संस्करण देखें: http://jsfiddle.net/QkmSk/1/ - स्वीकार्य रूप से फ़ायरफ़ॉक्स में प्रभाव बहुत स्पष्ट नहीं है, लेकिन लाल सीमा 'इनपुट' द्वारा कवर की जाती है। – thirtydot

+0

फ़ायरफ़ॉक्स 3.6.14 का उपयोग कर यह मामला यहां नहीं है। ओपी प्रदान किया गया कोड बिना किसी समायोजन के पूरी तरह से काम करता है। इनपुट बॉक्स लाल सीमा के अंदर था। – Dave

+0

मैं प्रश्न में बताए गए 4 प्रमुख ब्राउज़रों में इस मुद्दे को देख रहा था, प्रदर्शन कोड को रिक्त पृष्ठ एचटीएमएल में लिखा गया था और 'एचटीएमएल' टैग में कोई योगदान नहीं है इसलिए मैं वहां किसी भी समस्या की कल्पना नहीं कर सकता। 'Ctrl + '+' – drasto

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