मैं <input type="text">
(जिसे अब "टेक्स्टबॉक्स" के रूप में जाना जाता है) को एकसे 100%
पर एक मूल कंटेनर भरने की कोशिश कर रहा हूं। यह तब तक काम करता है जब तक मैं टेक्स्टबॉक्स को पैडिंग नहीं देता। इसके बाद सामग्री चौड़ाई और इनपुट फ़ील्ड ओवरफ्लो में जोड़ा जाता है। ध्यान दें कि फ़ायरफ़ॉक्स में यह केवल तब होता है जब सामग्री को मानकों के अनुरूप मानते हैं। क्विर्क मोड में, एक और बॉक्स मॉडल लागू होता प्रतीत होता है।सीएसएस: अभिभावक कंटेनर भरने के लिए टेक्स्टबॉक्स
यहां सभी आधुनिक ब्राउज़रों में व्यवहार को पुन: पेश करने के लिए एक न्यूनतम कोड है।
#x {
background: salmon;
padding: 1em;
}
#y, input {
background: red;
padding: 0 20px;
width: 100%;
}
<div id="x">
<div id="y">x</div>
<input type="text"/>
</div>
: मैं पाठ बॉक्स कंटेनर फिट करने के लिए कैसे मिलता है?
सूचना: <div id="y">
के लिए, यह स्पष्ट है: बस width: auto
निर्धारित किया है। हालांकि, अगर मैं टेक्स्टबॉक्स के लिए ऐसा करने का प्रयास करता हूं, तो प्रभाव अलग होता है और टेक्स्टबॉक्स अपनी डिफ़ॉल्ट पंक्ति गणना चौड़ाई के रूप में लेता है (भले ही मैं टेक्स्टबॉक्स के लिए display: block
सेट करता हूं)।
/संपादित करें: डेविड का "समाधान" निश्चित रूप से काम करेगा। हालांकि, मैं HTML को संशोधित नहीं करना चाहता - मैं विशेष रूप से डमी तत्वों को कोई अर्थपूर्ण कार्यक्षमता के साथ जोड़ना नहीं चाहता हूं। यह divitis का एक सामान्य मामला है जिसे मैं हर कीमत से बचना चाहता हूं। यह केवल एक अंतिम उपाय हैक हो सकता है।
नकारात्मक पैडिंग के बारे में क्या? अगर नकारात्मक मार्जिन काम नहीं करता है। क्या आपके पास नकारात्मक पैडिंग भी हो सकती है? – Sekhat