मेरे पास एक div है जिसे मैं एक FIXED चौड़ाई और ऊंचाई निर्दिष्ट करना चाहता हूं, और एक पैडिंग भी है जिसे मूल DIV चौड़ाई / ऊंचाई को कम किए बिना या इसे बढ़ाकर बदला जा सकता है, क्या इसके लिए एक सीएसएस ट्रिक है, या पैडिंग का उपयोग करके एक विकल्प है?
जवाबों:
समाधान अपने गद्देदार div लपेटने के लिए है , निश्चित चौड़ाई बाहरी div के साथ
एचटीएमएल
<div class="outer">
<div class="inner">
<!-- your content -->
</div><!-- end .inner -->
</div><!-- end .outer -->
सीएसएस
.outer, .inner {
display: block;
}
.outer {
/* specify fixed width */
width: 300px;
padding: 0;
}
.inner {
/* specify padding, can be changed while remaining fixed width of .outer */
padding: 5px;
}
अपने सीएसएस में इसे घोषित करें और आपको अच्छा होना चाहिए:
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
यह समाधान अतिरिक्त रैपर का उपयोग किए बिना लागू किया जा सकता है।
यह ब्राउज़र को "बाहरी" -विभाजन की चौड़ाई के अनुसार चौड़ाई की गणना करने के लिए मजबूर करेगा, इसका मतलब है कि पैडिंग को चौड़ाई से घटाया जाएगा।
ऐसा लगता है जैसे आप IE6 बॉक्स मॉडल का अनुकरण करना चाहते हैं। आप इसे प्राप्त करने के लिए CSS 3 प्रॉपर्टी बॉक्स-साइज़िंग: बॉर्डर-बॉक्स का उपयोग कर सकते हैं। यह IE8 द्वारा समर्थित है, लेकिन फ़ायरफ़ॉक्स के लिए आपको -moz-box-sizingसफारी / क्रोम का उपयोग करना होगा , उपयोग करना होगा -webkit-box-sizing।
IE6 पहले से ही गलत ऊंचाई की गणना करता है, इसलिए आप उस ब्राउज़र में अच्छे हैं, लेकिन मुझे IE7 के बारे में निश्चित नहीं है, मुझे लगता है कि यह ऊंचाई को क्वर्की मोड में गणना करेगा।
इस ट्रिक को आजमाएं
div{
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
यह ब्राउज़र को "बाहरी" -विभाजन की चौड़ाई की रिकॉर्डिंग की गणना करने के लिए मजबूर करेगा, इसका मतलब है कि पैडिंग को चौड़ाई से प्रतिस्थापित किया जाएगा।