Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> CSS

CSS बॉक्स साइजिंग प्रॉपर्टी कैसे काम करती है

CSS box-sizing का उपयोग करना सीखें यह नियंत्रित करने के लिए कि ब्राउज़र आपके HTML तत्वों की चौड़ाई और ऊंचाई की गणना और प्रतिपादन कैसे करता है।

बॉक्स-साइज़िंग (सामग्री-बॉक्स बनाम बॉर्डर-बॉक्स)

CSS box-sizing संपत्ति के दो मूल्य हैं:

  • content-box (डिफ़ॉल्ट)
  • border-box

दोनों बॉक्स-साइज़िंग मान प्रभावित करते हैं कि ब्राउज़र HTML तत्वों के आकार की गणना और प्रतिपादन कैसे करता है, लेकिन केवल यही एक चीज है जो उनमें समान है।

सामग्री-बॉक्स

डिफ़ॉल्ट रूप से सभी HTML तत्व content-box . का उपयोग करते हैं मूल्य:

box-sizing: content-box;

इसका मतलब है कि यदि आपके पास निम्नलिखित शैलियों वाला कोई तत्व है:

div {
  width: 100px;
  height: 100px;
  padding: 16px;
  border: 1px solid;
}

फिर उस तत्व की चौड़ाई और ऊंचाई की गणना 134px के रूप में की जाती है, 100px नहीं जैसा कि आपने अपने CSS स्टाइलशीट में निर्दिष्ट किया है। परिणाम:

यदि आप अपने लिए आकार जांचना चाहते हैं, तो अपने ब्राउज़र को सक्षम करें तत्व निरीक्षक इस आदेश के साथ:

  • मैक:सीएमडी + शिफ्ट + सी
  • विंडोज़:Ctrl + Shift + C

फिर अपने माउस को उसके आकार को देखने के लिए ऊपर के तत्व पर ले जाएँ।

ऐसा इसलिए होता है क्योंकि content-box बॉर्डर के साथ चौड़ाई/ऊंचाई के मानों को जोड़ता है (1px प्रत्येक तरफ) और पैडिंग (16px प्रत्येक तरफ) मान, और तत्वों के आकार को उन मानों के योग पर प्रस्तुत करता है:

  • तत्व की चौड़ाई:1 + 16 + 100 + 16 + 1 =134 पिक्सेल।
  • तत्व की ऊंचाई:1 + 16 + 100 + 16 + 1 =134 पिक्सेल।

content-box . से यह डिफ़ॉल्ट व्यवहार साथ काम करना काफी कष्टप्रद हो सकता है, लेकिन सौभाग्य से, इसे बदलना आसान है!

डिफ़ॉल्ट box-sizing: content-box घोषणा उपयोगकर्ता एजेंट स्टाइलशीट से विरासत में मिली है, जिसे सभी वेब ब्राउज़र में बनाया गया है।

बॉर्डर-बॉक्स से बचाव के लिए

आप आसानी से content-box को ओवरराइड कर सकते हैं border-box के साथ मान मान, जिसका ब्राउज़र द्वारा तत्वों के आकार की गणना करने के तरीके पर विपरीत प्रभाव पड़ता है:

box-sizing: border-box;

अपना box-sizing . सेट करके border-box . के लिए संपत्ति ब्राउज़र आपके तत्वों को सटीक चौड़ाई और ऊंचाई पर प्रस्तुत करेगा जो आप तत्व पर height के साथ निर्दिष्ट करते हैं और width गुण:

div {
  width: 100px;
  height: 100px;
  padding: 16px;
  border: 1px solid;
  box-sizing: border-box; 
}

परिणाम:

border-box मान ब्राउज़र को शामिल . बनाता है (जोड़ें नहीं) निर्दिष्ट पैडिंग और सीमा मान जब यह तत्व की कुल चौड़ाई और ऊंचाई की गणना करता है।

border-box के साथ , कोई फर्क नहीं पड़ता जो padding या border मान आप अपने तत्व में जोड़ते हैं, तो तत्व का कुल आकार वह मान होगा जो आप height पर निर्दिष्ट करते हैं और width गुण।

अच्छे उपाय के लिए यहाँ एक साथ तुलना है:

उपरोक्त दोनों तत्वों की निर्दिष्ट चौड़ाई और ऊंचाई 100 पिक्सेल है, लेकिन केवल दूसरा तत्व उन निर्दिष्ट मानों का सम्मान करता है क्योंकि यह border-box का उपयोग करता है ।

content-box बनाम border-box संक्षेप में:

  • content-box तत्वों की ऊंचाई/चौड़ाई वाले मानों के साथ पैडिंग और बॉर्डर मानों को जोड़ती है और कुल का प्रतिपादन करती है।
  • border-box तत्व की चौड़ाई/ऊंचाई के हिस्से के रूप में पैडिंग और सीमा मान शामिल हैं।

बॉर्डर-बॉक्स का उपयोग हर चीज़ पर करें

अब आप जानते हैं कि border-box ब्राउज़र को HTML तत्वों को वास्तविक आकार में प्रस्तुत करता है जिसे आप अपने सीएसएस में निर्दिष्ट करते हैं। लेकिन आप कैसे लागू करते हैं border-box आपके सभी HTML तत्वों पर?

यह निम्न सीएसएस नियम-सेट को सबसे ऊपर पर जोड़ने जितना आसान है आपकी स्टाइलशीट का:

*, *:before, *:after {
  box-sizing: border-box;
}

उपरोक्त कोड CSS के सार्वभौमिक चयनकर्ता का उपयोग करता है * border-box लागू करने के लिए box-sizing . का मान संपत्ति पर:

  • सभी सामान्य तत्व चयनकर्ता (div , p , button , आदि)
  • सभी :before और :after छद्म चयनकर्ता

border-box . का उपयोग करके आपके सभी HTML तत्वों पर, अब आपको इस बारे में चिंता करने की ज़रूरत नहीं है कि आपका ब्राउज़र आपके तत्वों के आकार को कैसे प्रस्तुत करता है। यह हमेशा ऊंचाई और चौड़ाई होगी जिसे आप स्वयं निर्दिष्ट करते हैं।


  1. सीएसएस में रूपरेखा-चौड़ाई वाली संपत्ति

    रूपरेखा-चौड़ाई गुण को तत्व की सीमाओं के चारों ओर विशिष्ट मोटाई की रेखा खींचने के लिए परिभाषित किया जा सकता है, लेकिन रूपरेखा किसी तत्व के आयामों का हिस्सा नहीं है, सीमा संपत्ति के विपरीत। सिंटैक्स CSS आउटलाइन-चौड़ाई प्रॉपर्टी का सिंटैक्स इस प्रकार है - चयनकर्ता { बाह्यरेखा-चौड़ाई:/*मान*/} नोट - रू

  1. CSS में बॉर्डर-कलर प्रॉपर्टी

    CSS बॉर्डर-कलर प्रॉपर्टी का उपयोग तत्वों के लिए बॉर्डर कलर निर्दिष्ट करने के लिए किया जाता है। हम बॉर्डर-टॉप-कलर, बॉर्डर-राइट-कलर, बॉर्डर-लेफ्ट-कलर और बॉर्डर-राइट-कलर प्रॉपर्टीज का उपयोग करके अलग-अलग पक्षों के लिए रंग भी सेट कर सकते हैं। सिंटैक्स CSS बॉर्डर-कलर प्रॉपर्टी का सिंटैक्स इस प्रकार है -

  1. सीएसएस में सीमा-शैली की संपत्ति

    CSS बॉर्डर-स्टाइल प्रॉपर्टी का उपयोग किसी तत्व के लिए बॉर्डर स्टाइल को निर्दिष्ट करने के लिए किया जाता है। हम बॉर्डर-टॉप-स्टाइल, बॉर्डर-राइट-स्टाइल, बॉर्डर-लेफ्ट-स्टाइल और बॉर्डर-राइट-स्टाइल गुणों का उपयोग करके अलग-अलग पक्षों के लिए बॉर्डर-स्टाइल को भी परिभाषित कर सकते हैं। सिंटैक्स CSS बॉर्डर प्रॉ