CSS बॉक्स साइजिंग
- पिछला पृष्ठ CSS @property
- अगला पृष्ठ CSS फ्लेक्सबॉक्स
CSS बॉक्स साइजिंग
CSS box-sizing
प्रतियोगिता अनुमति देती है कि हम एलीमेंट के कुल चौड़ाई और ऊंचाई में आंतरिक पैडिंग (फ़िलिंग) और किनारा समेत शामिल करें।
यदि CSS box-sizing एलीमेंट निर्दिष्ट नहीं किया गया
डिफ़ॉल्ट में, एलीमेंट की चौड़ाई और ऊंचाई एसे गिनी जाती है:
- width + padding + border = एलीमेंट की वास्तविक चौड़ाई
- height + padding + border = एलीमेंट की वास्तविक ऊंचाई
इसका मतलब है: जब आप एलीमेंट की चौड़ाई/ऊंचाई निर्दिष्ट करते हैं, तो एलीमेंट आमतौर पर आपके निर्दिष्ट चौड़ाई/ऊंचाई से बड़ा दिखता है (क्योंकि एलीमेंट के किनारा और आंतरिक पैडिंग एलीमेंट के निर्दिष्ट चौड़ाई/ऊंचाई में जोड़े गए हैं)。
नीचे दिए गए चित्र में एक-सी निर्दिष्ट चौड़ाई और ऊंचाई वाले दोनों <div> एलीमेंट दिखाए गए हैं:
(चौड़ाई 300px है, ऊंचाई 100px है)。
(चौड़ाई भी 300px है, ऊंचाई 100px है)。
ऊपरी दोनों <div> एलीमेंट अंतिम परिणाम में भिन्न आकार दिखाते हैं (क्योंकि div2 में पैडिंग निर्दिष्ट किया गया है):
इंस्टेंस
.div1 { width: 300px; height: 100px; border: 1px solid blue; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; }
box-sizing
प्रतियोगिता समस्या को हल करती है。
यदि हम CSS box-sizing एलीमेंट का इस्तेमाल करते हैं
box-sizing
प्रतियोगिता अनुमति देती है कि हम एलीमेंट के कुल चौड़ाई और ऊंचाई में आंतरिक पैडिंग और किनारा समेत शामिल करें।
यदि एलीमेंट पर box-sizing: border-box;
तो चौड़ाई और ऊंचाई आंतरिक पैडिंग और किनारा सहित होगा:
इस प्रदर्शन और ऊपरी प्रदर्शन के समान है, दोनों <div> एलीमेंटों को box-sizing: border-box;
:
इंस्टेंस
.div1 { width: 300px; height: 100px; border: 1px solid blue; box-sizing: border-box; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; box-sizing: border-box; }
क्योंकि इस्तेमाल करने के कारण box-sizing: border-box;
इस तरीके के प्रभाव इतना अच्छा दिखाया है कि कई डेवलपर्स चाहते हैं कि साइट पर सभी एलिमेंट इस तरीके से काम करें।
नीचे का कोड इस तरीके से सभी एलिमेंट के आकार को समान तरीके से समायोजित करने की सुनिश्चित करता है।अनेक ब्राउज़रों ने अनेक फॉर्म एलिमेंट पर box-sizing: border-box;
(लेकिन सभी नहीं - यही कारण है कि input और textarea width: 100%; पर अलग दिखते हैं)。
सभी एलिमेंट पर इस्तेमाल करना सुरक्षित और बुद्धिमानीपूर्ण है:
इंस्टेंस
* { box-sizing: border-box; }
CSS बॉक्स साइजिंग अट्रिब्यूट
अट्रिब्यूट | वर्णन |
---|---|
box-sizing | एलिमेंट की चौड़ाई और ऊंचाई की गणना के तरीके को निर्धारित करता है: वे आंतरिक इंडेंट (padding) और बॉर्डर को समाविष्ट करें या नहीं। |
- पिछला पृष्ठ CSS @property
- अगला पृष्ठ CSS फ्लेक्सबॉक्स