यदि इसमें फ्लोटेड तत्व होते हैं, तो कंटेनर तत्व की ऊंचाई क्यों नहीं बढ़ती है?


210

मैं पूछना चाहता हूं कि ऊंचाई और फ्लोट कैसे काम करते हैं। मेरे पास एक बाहरी div और एक आंतरिक div है जिसमें सामग्री है। इसकी ऊंचाई आंतरिक div की सामग्री के आधार पर भिन्न हो सकती है लेकिन ऐसा लगता है कि मेरा आंतरिक div इसके बाहरी div को ओवरफ्लो करेगा। इसे करने का उचित तरीका क्या होगा?

 <html>
    <body>
        <div style="margin:0 auto;width: 960px; min-height: 100px; background-color:orange">
    	    <div style="width:500px; height:200px; background-color:black; float:right"></div>
        </div>
    </body>
</html>



अच्छा और बहुत अच्छा धन्यवाद!
बासम अलुगिली

जवाबों:


581

फ्लोट किए गए तत्व कंटेनर तत्व की ऊँचाई में नहीं जुड़ते हैं, और इसलिए यदि आप उन्हें साफ़ नहीं करते हैं, तो कंटेनर की ऊँचाई नहीं बढ़ेगी ...

मैं आपको नेत्रहीन दिखाऊंगा:

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

अधिक स्पष्टीकरण:

<div>
  <div style="float: left;"></div>
  <div style="width: 15px;"></div> <!-- This will shift 
                                        besides the top div. Why? Because of the top div 
                                        is floated left, making the 
                                        rest of the space blank -->

  <div style="clear: both;"></div> 
  <!-- Now in order to prevent the next div from floating beside the top ones, 
       we use `clear: both;`. This is like a wall, so now none of the div's 
       will be floated after this point. The container height will now also include the 
       height of these floated divs -->
  <div></div>
</div>

आप overflow: hidden;कंटेनर तत्वों को भी जोड़ सकते हैं , लेकिन मैं आपको clear: both;इसके बजाय उपयोग करने का सुझाव दूंगा।

इसके अलावा, यदि आप किसी ऐसे तत्व को स्वयं साफ़ करना चाहें, जिसका आप उपयोग कर सकते हैं

.self_clear:after {
  content: "";
  clear: both;
  display: table;
}

सीएसएस फ्लोट कैसे काम करता है?

क्या वास्तव में फ्लोट है और यह क्या करता है?

  • floatसंपत्ति सबसे शुरुआती द्वारा गलत समझा है। खैर, वास्तव में क्या करता floatहै? प्रारंभ में, floatसंपत्ति को छवियों के चारों ओर पाठ प्रवाह करने के लिए पेश किया गया था, जो कि फ्लोट किए गए हैं leftया rightयहाँ @Madara Uchicha द्वारा एक और स्पष्टीकरण दिया गया है।

    तो, क्या floatबक्से को साइड में रखने के लिए संपत्ति का उपयोग करना गलत है ? उत्तर है नहीं ; यदि आप floatसंपत्तियों का उपयोग साइड बॉक्स को सेट करने के लिए करते हैं तो कोई समस्या नहीं है ।

  • एक inlineया blockस्तर तत्व फ्लोटिंग तत्व तत्व की तरह व्यवहार करेगा inline-block

    डेमो

  • यदि आप एक तत्व तैरते हैं leftया right, widthतत्व की सामग्री उस सामग्री तक सीमित होगी, जब तक widthकि इसे स्पष्ट रूप से परिभाषित नहीं किया जाता है ...

  • आप floatएक तत्व नहीं कर सकते center। यह सबसे बड़ा मुद्दा है जिसे मैंने हमेशा शुरुआती लोगों के साथ देखा है float: center;, जिसका उपयोग करना floatसंपत्ति के लिए मान्य मूल्य नहीं है । floatआमतौर पर floatसामग्री को बहुत बाईं ओर या बहुत दाईं ओर ले जाने के लिए उपयोग किया जाता है । केवल हैं चार के लिए मान्य मानों floatसंपत्ति यानी left, right, none(डिफ़ॉल्ट) और inherit

  • मूल तत्व ढह जाता है, जब इसमें फ्लोट किए गए बाल तत्व होते हैं, इसे रोकने के लिए, हम clear: both;संपत्ति का उपयोग करते हैं, दोनों पक्षों पर फ्लोट किए गए तत्वों को साफ करने के लिए, जो मूल तत्व के ढहने को रोकेंगे। अधिक जानकारी के लिए, आप यहां मेरे दूसरे जवाब का उल्लेख कर सकते हैं ।

  • (महत्वपूर्ण) इसके बारे में सोचें जहां हमारे पास विभिन्न तत्वों का ढेर है। जब हम उपयोग करते हैं float: left;या float: right;तत्व एक के बाद एक स्टैक से ऊपर जाता है। इसलिए सामान्य दस्तावेज़ प्रवाह में तत्व फ्लोट किए गए तत्वों के पीछे छिप जाएंगे क्योंकि यह सामान्य फ्लोट किए गए तत्वों के ऊपर स्टैक स्तर पर है। (कृपया इससे संबंधित न हों z-indexक्योंकि यह पूरी तरह से अलग है।)


एक उदाहरण के रूप में एक मामला लेते हुए यह समझाने के लिए कि कैसे सीएसएस तैरता है, यह मानते हुए कि हमें हेडर, फुटर और 2 कॉलम के साथ एक सरल 2 कॉलम लेआउट की आवश्यकता है, इसलिए यहां पर ब्लूप्रिंट कैसा दिखता है ...

यहां छवि विवरण दर्ज करें

उपरोक्त उदाहरण में, हम, या तो आप कर सकते हैं चल केवल लाल बक्से हो जाएगा floatदोनों के लिए left, या आप कर सकते हैं floatकरने के लिए पर leftकरने के लिए, और एक अन्य rightअगर यह 3 कॉलम है, आप कर सकते हैं और साथ ही, लेआउट पर निर्भर करता है, float2 करने के लिए कॉलम left, जहां एक और ऐसा करने के लिए एक rightनिर्भर करता है, हालांकि इस उदाहरण में, हमारे पास एक सरलीकृत 2 कॉलम लेआउट है ताकि floatएक को leftऔर दूसरे को right

मार्कअप और लेआउट बनाने के लिए शैलियों को और नीचे समझाया गया है ...

<div class="main_wrap">
    <header>Header</header>
    <div class="wrapper clear">
        <div class="floated_left">
            This<br />
            is<br />
            just<br />
            a<br />
            left<br />
            floated<br />
            column<br />
        </div>
        <div class="floated_right">
            This<br />
            is<br />
            just<br />
            a<br />
            right<br />
            floated<br />
            column<br />
        </div>
    </div>
    <footer>Footer</footer>
</div>

* {
    -moz-box-sizing: border-box;       /* Just for demo purpose */
    -webkkit-box-sizing: border-box;   /* Just for demo purpose */
    box-sizing: border-box;            /* Just for demo purpose */
    margin: 0;
    padding: 0;
}

.main_wrap {
    margin: 20px;
    border: 3px solid black;
    width: 520px;
}

header, footer {
    height: 50px;
    border: 3px solid silver;
    text-align: center;
    line-height: 50px;
}

.wrapper {
    border: 3px solid green;
}

.floated_left {
    float: left;
    width: 200px;
    border: 3px solid red;
}

.floated_right {
    float: right;
    width: 300px;
    border: 3px solid red;
}

.clear:after {
    clear: both;
    content: "";
    display: table;
}

चलिए लेआउट के साथ कदम से कदम मिलाते हैं और देखते हैं कि फ्लोट कैसे काम करता है ..

सबसे पहले, हम मुख्य आवरण तत्व का उपयोग करते हैं, आप केवल यह मान सकते हैं कि यह आपका व्यूपोर्ट है, फिर हम वहां बहुत सारे अन्य headerफ़ेसबुक का उपयोग और असाइन करते heightहैं 50px। यह सिर्फ एक सामान्य गैर फ्लोटेड ब्लॉक स्तर का तत्व है जो 100%क्षैतिज स्थान तक ले जाएगा जब तक कि यह फ्लोट नहीं हो जाता है या हम inline-blockइसे असाइन नहीं करते हैं।

पहले मान्य मान के लिए floatहै leftहमारे उदाहरण में ऐसा है, तो हम उपयोग float: left;के लिए .floated_leftहै, तो हम करने के लिए एक ब्लॉक फ्लोट करने का इरादा leftहमारे कंटेनर तत्व की।

स्तंभ बाईं ओर तैरता था

और हां, अगर आप देखें, तो मूल तत्व, जो .wrapperढह गया है, जिसे आप एक हरे रंग की सीमा के साथ देखते हैं, उसका विस्तार नहीं हुआ, लेकिन क्या यह सही है? थोड़ी देर में वापस आएँगे, अभी के लिए, हमें एक कॉलम मिला है left

दूसरे कॉलम में आकर, इसे floatयह करने देता हैright

एक अन्य स्तंभ दाईं ओर तैरता है

यहाँ, हम एक है 300pxविस्तृत स्तंभ है जो हम floatकरने के लिए rightहै, जो पहले कॉलम के बगल में बैठेंगे के रूप में यह करने के लिए जारी है left, और के बाद से यह करने के लिए जारी है left, यह करने के लिए खाली गटर बनाई गई rightहै, और के बाद से पर अंतरिक्ष की पर्याप्त नहीं था right, हमारे rightतैरता हुआ तत्व पूरी तरह से leftएक के पास बैठा था ।

फिर भी, मूल तत्व ढह गया है, ठीक है, चलो अब इसे ठीक करें। मूल तत्व को ढहने से रोकने के कई तरीके हैं।

  • एक खाली ब्लॉक स्तर तत्व जोड़ें और clear: both;मूल तत्व समाप्त होने से पहले उपयोग करें , जो फ्लोट किए गए तत्व रखता है, अब यह clearआपके अस्थायी तत्वों का एक सस्ता समाधान है जो आपके लिए काम करेगा लेकिन, मैं आपको इसका उपयोग नहीं करने की सलाह दूंगा।

समाप्त <div style="clear: both;"></div>होने से पहले जोड़ें, .wrapper divजैसे

<div class="wrapper clear">
    <!-- Floated columns -->
    <div style="clear: both;"></div>
</div>

डेमो

ठीक है, यह बहुत अच्छी तरह से ठीक हो जाता है, कोई भी ध्वस्त अभिभावक नहीं होता है, लेकिन यह DOM में अनावश्यक मार्कअप जोड़ देता है, इसलिए कुछ सुझाव देते हैं, overflow: hidden;अभिभावक तत्व पर तैरते हुए बाल तत्वों को रखने के लिए उपयोग करें जो कि काम करते हैं।

overflow: hidden;पर प्रयोग करें.wrapper

.wrapper {
    border: 3px solid green;
    overflow: hidden;
}

डेमो

हमें हर बार हमें एक तत्व की बचत होती है, clear floatलेकिन जैसा कि मैंने इसके साथ विभिन्न मामलों का परीक्षण किया, यह एक विशेष रूप से विफल हो गया, जो box-shadowबाल तत्वों पर उपयोग करता है ।

डेमो (सभी 4 पक्षों पर छाया नहीं देख सकता,overflow: hidden;इस समस्या का कारण बनता है)

तो अब क्या? एक तत्व को सहेजें, overflow: hidden;इसलिए कोई स्पष्ट फिक्स हैक के लिए न जाएं, अपने सीएसएस में नीचे दिए गए स्निपेट का उपयोग करें, और जैसे आप overflow: hidden;मूल तत्व के लिए उपयोग करते हैं, classनीचे के तत्व को स्वयं स्पष्ट करने के लिए कॉल करें ।

.clear:after {
    clear: both;
    content: "";
    display: table;
}

<div class="wrapper clear">
    <!-- Floated Elements -->
</div>

डेमो

यहां, छाया इच्छित उद्देश्य के साथ काम करती है, साथ ही, यह मूल तत्व को भी साफ कर देती है जो टूटने से बचाता है।

और अंत में, हम clearफ़्लोट किए गए तत्वों के बाद पाद का उपयोग करते हैं।

डेमो


किसी भी तरह से float: none;उपयोग किया जाता है, क्योंकि यह डिफ़ॉल्ट है, इसलिए घोषित करने के लिए कोई उपयोग float: none;?

खैर, यह निर्भर करता है, यदि आप एक उत्तरदायी डिजाइन के लिए जा रहे हैं, तो आप इस मूल्य का उपयोग कई बार करेंगे, जब आप अपने फ़्लोट किए गए तत्वों को एक निश्चित रिज़ॉल्यूशन पर एक दूसरे के नीचे प्रस्तुत करना चाहते हैं। उस float: none;संपत्ति के लिए वहाँ एक महत्वपूर्ण भूमिका निभाता है।


कुछ वास्तविक दुनिया उदाहरण है कि कैसे floatउपयोगी है।

  • पहला उदाहरण जो हमने पहले ही देखा था, वह एक या एक से अधिक स्तंभ लेआउट बनाना है।
  • imgअंदर फ़्लोटिंग का उपयोग करना pजिससे हमारी सामग्री चारों ओर प्रवाहित हो सकेगी।

डेमो (अस्थायी के बिनाimg)

डेमो 2 (imgफ्लोट किए गएleft)

  • floatक्षैतिज मेनू बनाने के लिए उपयोग करना - डेमो

फ्लोट दूसरे तत्व के रूप में अच्छी तरह से, या `मार्जिन` का उपयोग करें

पिछले नहीं बल्कि कम से कम, मैं इस विशेष मामले की व्याख्या करना चाहता हूं, जहां आप floatकेवल एक तत्व हैं leftलेकिन आप floatदूसरे को नहीं करते हैं, इसलिए क्या होता है?

मान लीजिए अगर हम float: right;अपने से हटाते हैं .floated_right class, तो इसे divचरम से प्रदान किया जाएगा leftक्योंकि यह तैरता नहीं है।

डेमो

तो इस मामले में, या तो आप कर सकते हैं floatकरने के लिए leftके रूप में अच्छी तरह से

या

आप का उपयोगmargin-left200px कर सकते हैं जो बाएँ फ़्लोट किए गए स्तंभ के आकार के बराबर होगा यानी विस्तृत होगा


3
तथ्य यह है कि फ्लोट्स एक ब्लॉक-स्तरीय माता-पिता की ऊंचाई में योगदान नहीं करते हैं स्पष्ट रूप से यहां कल्पना में कहा गया है: w3.org/TR/CSS21/visudet.html#normal-block कारण यह है कि एक स्पष्ट उप- कार्यों को जोड़ने का कारण है क्योंकि 1) क्लियरफिक्स सामान्य प्रवाह 2 में है (आमतौर पर) क्लीयरिंग फ्लोट्स के लिए जरूरी है कि क्लीफिक्स को फ्लोट्स 3 के बहुत नीचे रखा जाए) उस क्लीयरफिक्स को समाहित करने के लिए कंटेनर को स्ट्रेच करना होगा।
BoltClock

@BoltClock बेहतर होगा यदि आप शीर्षक को रोलबैक करते हैं, तो उपयोगकर्ताओं के लिए seo को गंभीर रूप से प्रभावित करेगा जो पाता है कि फ्लोट कैसे काम करता है .. आप उन शब्दों को Google पर लिख सकते हैं और जांच सकते हैं .. अन्यथा यदि लोगों के लिए यह कैनोनिकल उत्तर का कोई फायदा नहीं है। वे क्या देख रहे हैं खोजने में सक्षम नहीं है।
श्री एलियन

"सीएसएस फ्लोट कैसे काम करता है?" एक अत्यंत व्यापक शीर्षक है, और यह भी लोगों को गुमराह कर रहा है कि इस एक के बारे में किसी भी फ्लोट प्रश्न को बंद करने के लिए मतदान करें । यहां सवाल केवल एक पहलू को शामिल करता है: कंटेनर लपेटने (या लपेटकर नहीं) तैरता है।
BoltClock

@BoltClock वैसे भी तकनीकी में वही समझाया जाता है जो समझाया जाता है clear: both;, लेकिन यह ठीक है अगर आपको लगता है कि एडिट जस्टिफाई करता है तो इस तरह से रख सकते हैं
Mr. Alien

1
शानदार जवाब। "किसी भी तत्व को बाईं या दाईं ओर फ़्लोट करना, तत्व की चौड़ाई उस सामग्री तक सीमित रहेगी, जब तक कि चौड़ाई स्पष्ट रूप से परिभाषित नहीं की जाती है" - मैंने उसी चीज़ को देखा और बस इस बात की पुष्टि की जा रही थी। धन्यवाद
दीन जॉन

38

इसके लिए आपको overflow:autoअपने माता-पिता से जुड़ने की जरूरत है ताकि भीतर की तैरती हुई दिव्यता को समाहित किया जा सके:

<div style="margin:0 auto;width: 960px; min-height: 100px; background-color:orange;overflow:auto">
    <div style="width:500px; height:200px; background-color:black; float:right">
    </div>
</div>

jsFiddle उदाहरण


6
यह एक समाधान नहीं है, आप सामग्री को छिपा रहे हैं जो बाहरी भाग से सीमाओं से बाहर जाती है।
एलेजांद्रो रूइज़ एरियस

@AlejandroRuizArias - वास्तव में कुछ भी कैसे छिपाया जा रहा है?
j08691

3
इस उदाहरण में कुछ भी नहीं है, लेकिन यदि आप आंतरिक div में पर्याप्त सामग्री का परिचय हाँ करते हैं।
अलेजांद्रो रूइज़ एरियस

यह वह नहीं करता है जो ओपी देख रहा था: Forked jsfiddle.net/h0ceb5ra
TecBrat

1
बहुत बढ़िया। एक विशेषता समाधान मैं देख रहा था, अगर बाकी सब कुछ इतना आसान था, तो चिंराट की कोई आवश्यकता नहीं होगी।
YK

10

आप फ्लोट बग का सामना कर रहे हैं (हालांकि मुझे यकीन नहीं है कि यह तकनीकी रूप से एक बग है क्योंकि कितने ब्राउज़र इस व्यवहार को प्रदर्शित करते हैं)। यहाँ क्या हो रहा है:

सामान्य परिस्थितियों में, यह मानते हुए कि कोई स्पष्ट ऊंचाई निर्धारित नहीं की गई है, एक ब्लॉक स्तर का तत्व जैसे कि div इसकी सामग्री के आधार पर इसकी ऊंचाई निर्धारित करेगा। मूल तत्व का निचला भाग अंतिम तत्व से आगे बढ़ेगा। दुर्भाग्यवश, एक तत्व तैरना माता-पिता को अपनी ऊंचाई निर्धारित करते समय फ्लोट किए गए तत्व को ध्यान में रखने से रोकता है। इसका मतलब यह है कि यदि आपका अंतिम तत्व तैरता है, तो यह माता-पिता को उसी तरह "खिंचाव" नहीं देगा जिस तरह से एक सामान्य तत्व होता है।

क्लियरिंग

इसे ठीक करने के दो सामान्य तरीके हैं। पहला "समाशोधन" तत्व जोड़ना है; वह है, फ्लोटेड के नीचे एक और तत्व जो माता-पिता को खिंचाव के लिए मजबूर करेगा। तो पिछले बच्चे के रूप में निम्नलिखित HTML जोड़ें:

<div style="clear:both"></div>

यह दिखाई नहीं देना चाहिए, और स्पष्ट का उपयोग करके: दोनों, आप यह सुनिश्चित करते हैं कि यह फ्लोटेड तत्व के बगल में नहीं बैठेगा, लेकिन इसके बाद।

अतिप्रवाह:

दूसरी विधि, जिसे ज्यादातर लोग पसंद करते हैं (मुझे लगता है) मूल तत्व के सीएसएस को बदलना है ताकि अतिप्रवाह कुछ भी हो लेकिन "दृश्यमान" हो। इसलिए अतिप्रवाह को "छिपी" करने के लिए माता-पिता को तैरते हुए बच्चे के नीचे से आगे बढ़ने के लिए मजबूर करना होगा। यह केवल तभी सही है जब आपने माता-पिता के लिए ऊंचाई निर्धारित नहीं की है।

जैसा कि मैंने कहा, दूसरी विधि को प्राथमिकता दी जाती है क्योंकि इसके लिए आपको अपने मार्कअप में शब्दार्थ अर्थहीन तत्वों को जोड़ने और जोड़ने की आवश्यकता नहीं होती है, लेकिन ऐसे समय होते हैं जब आपको overflowदिखाई देने की आवश्यकता होती है , जिसमें क्लियरिंग तत्व जोड़ना स्वीकार्य से अधिक होता है ।


3

इसकी वजह यह है कि डिव का फ्लोट है। overflow: hiddenबाहर तत्व पर जोड़ें ।

<div style="overflow:hidden; margin:0 auto;width: 960px; min-height: 100px; background-color:orange;">
    <div style="width:500px; height:200px; background-color:black; float:right">
    </div>
</div>

डेमो


3

आप भ्रमित करते हैं कि जब फ़्लोटिंग तत्व होते हैं तो ब्राउज़र तत्वों को कैसे प्रस्तुत करता है। यदि एक ब्लॉक तत्व तैर रहा है (आपके मामले में आपका आंतरिक विभाजन), अन्य ब्लॉक तत्व इसे अनदेखा कर देंगे क्योंकि ब्राउज़र वेब पेज के सामान्य प्रवाह से अस्थायी तत्वों को हटा देता है। फिर, क्योंकि फ्लो किए गए डिव को सामान्य प्रवाह से हटा दिया गया है, बाहरी डिव में भरा हुआ है, जैसे कि आंतरिक डिव नहीं है। हालांकि, इनलाइन एलिमेंट्स (चित्र, लिंक, टेक्स्ट, ब्लैककोट) फ्लोटिंग तत्व की सीमाओं का सम्मान करेंगे। यदि आप बाहरी div में पाठ का परिचय देते हैं, तो पाठ arround de inner div को स्थान देगा।

दूसरे शब्दों में, ब्लॉक एलिमेंट्स (हेडर, पैराग्राफ, डिवाइसेस आदि) फ्लोटिंग तत्वों को अनदेखा करते हैं और इनलाइन एलिमेंट्स (इनलाइन एलिमेंट्स (इमेजेज, लिंक, टेक्स्ट आदि)) फ्लोटिंग एलिमेंट्स की सीमाओं का सम्मान करते हैं।

यहाँ एक बेला उदाहरण है

<body>
    <div style="float:right; background-color:blue;width:200px;min-height:400px;margin-right:20px">
           floating element
    </div>
    <h1 style="background-color:red;"> this is a big header</h1>
    <p style="background-color:green"> this is a parragraph with text and a big image. The text places arrounds the floating element. Because of the image is wider than space between paragrah and floating element places down the floating element. Try to make wider the viewport and see what happens :D
        <img src="http://2.bp.blogspot.com/_nKxzQGcCLtQ/TBYPAJ6xM4I/AAAAAAAAAC8/lG6XemOXosU/s1600/css.png">
     </p>

3
पाठ को हाइलाइट न करें और अगली बार से अपने उत्तर में कोड लिंक, पोस्ट कोड को साझा करें, cuz यदि फिडल लिंक मर चुका है, तो भविष्य के उपयोगकर्ता को यहां कोई सहायता नहीं मिलेगी और आपके उत्तर का कोई अर्थ नहीं होगा
श्री एलियन


1

आप कंटेनर div में ओवरफ्लो संपत्ति का उपयोग कर सकते हैं यदि आपके पास कंटेनर पर दिखाने के लिए कोई div नहीं है जैसे:

<div class="cointainer">
    <div class="one">Content One</div>
    <div class="two">Content Two</div>
</div>

यहाँ निम्नलिखित सीएसएस है:

.container{
    width:100%;/* As per your requirment */
    height:auto;
    float:left;
    overflow:hidden;
}
.one{
    width:200px;/* As per your requirment */
    height:auto;
    float:left;
}

.two{
    width:200px;/* As per your requirment */
    height:auto;
    float:left;
}

----------------------- या -------------------------- ----

    <div class="cointainer">
        <div class="one">Content One</div>
        <div class="two">Content Two</div>
        <div class="clearfix"></div>
    </div>

यहाँ निम्नलिखित सीएसएस है:

    .container{
        width:100%;/* As per your requirment */
        height:auto;
        float:left;
        overflow:hidden;
    }
    .one{
        width:200px;/* As per your requirment */
        height:auto;
        float:left;
    }

    .two{
        width:200px;/* As per your requirment */
        height:auto;
        float:left;
    }
    .clearfix:before,
    .clearfix:after{
        display: table;
        content: " ";
    }
    .clearfix:after{
        clear: both;
    }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.