2011-01-11 16 views
5

कुछ HTML तत्वों (एक फॉर्म इनपुट की तरह) असाइन करते समय 100% चौड़ाई - अब आप चौड़ाई को प्रभावित करने वाली कोई अतिरिक्त शैलियों को लागू नहीं कर सकते हैं। border या padding जैसी चीजें तत्व को 100% से अधिक होने का कारण बनेंगी। इसके परिणामस्वरूप अजीब तत्व होते हैं जो उनके मूल तत्वों के बाहर हो सकते हैं।100% चौड़ाई HTML तत्व समस्या

के बाद से सीएसएस width: 100% - 2px; का समर्थन नहीं करता एक ही रास्ता है कि मैं इस के आसपास पता एक निरपेक्ष पिक्सेल चौड़ाई (width: 98px) का उपयोग करें या 100% है जो वास्तव में एक विकल्प नहीं है पर उतर तत्व काट रहा है।

<div style="overflow:hidden;"> 
<input style="width:100%; border: 1px solid #000;" /> 
</div> 

क्या वे इसके आसपास कोई अन्य तरीके हैं?

उत्तर

9

adding another div के साथ साथ, समाधान जल्द ही सीएसएस नियमों के box-sizing attribute जोड़ने के लिए सीएसएस 3 उपयोग करने के लिए किया जाएगा। यह नया CSS 3 मान IE 8 और अन्य सभी ब्राउज़रों में पहले से ही काम करता है - इसलिए यदि आपको IE 6 & 7 छोड़ने पर कोई फर्क नहीं पड़ता है तो आप इसे अभी उपयोग कर सकते हैं!

textarea { 
     -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ 
     -moz-box-sizing: border-box; /* Firefox, other Gecko */ 
     box-sizing: border-box;   /* Opera/IE 8+ */ 
} 
+0

+1 महान, एक आकर्षण की तरह काम करता है! :) –

+0

यह मजाकिया है कि हम सभी को इस सीएसएस स्निपेट को उसी साइट से कॉपी-पेस्ट करें जब भी हमें इसकी आवश्यकता हो: पी – Loupax

+0

शांत! thanx - बस इसकी जरूरत है! – headkit

4

आप एक कंटेनर बना सकते हैं जो क्रोम (सीमाओं, पैडिंग) के बिना 100% है, और फिर जो भी क्रोम आप चाहते हैं उसके साथ एक ब्लॉक तत्व रखें - एक ब्लॉक तत्व डिफ़ॉल्ट रूप से कुल चौड़ाई को भर देगा।

<style> 
.container {width:100%;border:0:margin:0;} 
.thingy {border:1px solid black;margin:2px;background:#ddd;} 
</style> 

<div class="container"> 
    <div class="thingy"> 
    Both worlds? 
    </div> 
</div> 
+0

ऐसा लगता है div तत्वों पर यह केवल काम करता है। हालांकि, http://stackoverflow.com/questions/271067/how-can-i-make-a-textarea-100-width-without-overflowing-when-padding-is-present/272632#272632 जोड़ने का एक तरीका दिखाता है तत्व के चारों ओर एक और div और स्टाइल लागू करने के लिए। – Xeoncross

+0

खैर, आंतरिक तत्व को ब्लॉक स्तर तत्व होना चाहिए ('इनलाइन', या' इनलाइन-ब्लॉक' नहीं)। – Rudu

+3

+1 जो मैंने कहा होगा अगर मैं पर्याप्त तेज़ था। :) यह ध्यान देने योग्य भी हो सकता है कि CSS3 हमें 'बॉक्स-साइजिंग: कंटेंट-बॉक्स' देता है, जो गणना की चौड़ाई से सीमाओं और पैडिंग को घटाता है। –

0

यह एक पुरानी सवाल है, लेकिन यह उल्लेख है कि CSS3 के बाद से, आप calc उपयोग कर सकते हैं लायक है:

width: calc(100% - 2px); 
संबंधित मुद्दे