← Back to HTML Course | Chapter 8: Modern HTML & Components | Lesson 7 of 10

HTML Details & Summary

सोचिए आप किसी ऑनलाइन FAQ पेज पर जा रहे हैं जिसमें तीस लंबे, विस्तृत जवाब लिस्ट किए गए हैं। अगर पेज एक साथ सभी तीस जवाब दिखाए, तो पेज बहुत बड़ा हो जाएगा, और अपना सवाल ढूंढने के लिए आपको हमेशा स्क्रॉल करना पड़ेगा। पहले, डेवलपर्स को expand/collapse FAQ accordions बनाने के लिए कॉम्प्लेक्स CSS और JavaScript कोड लिखना पड़ता था। HTML details और summary एलिमेंट्स यह समस्या हल करते हैं। ये नेटिव, इंटरैक्टिव expand/collapse विजेट्स बनाते हैं। सिंपल टैग्स इस्तेमाल करके, आप लंबे स्पष्टीकरण छिपा सकते हैं और यूज़र्स को एक क्लिक में उन्हें toggle खोलने दे सकते हैं, जिससे आपका पेज साफ और व्यवस्थित बना रहता है।
Syntax
markup
<details>
  <summary>Visible heading</summary>
  Hidden content
</details>

details के साथ नेटिव Accordions

details टैग आपके वेबपेज पर एक इंटरैक्टिव expand/collapse accordion विजेट परिभाषित करता है। इस कंटेनर के अंदर रखा गया कोई भी कंटेंट (जैसे paragraphs या images) डिफ़ॉल्ट रूप से तब तक छुपा रहता है जब तक यूज़र उसे खोलने के लिए क्लिक न करे।

Note:
  • FAQs, तकनीकी विनिर्देशों (specifications), या नेस्टेड लिंक्स को व्यवस्थित और साफ रखने के लिए details टैग्स का उपयोग करें।
  • Accepted attributes:
  • open — boolean; expanded state
  • name — group name; only one open in the group (exclusive accordion)
  • summary — first child; visible label
Warning: डिफॉल्ट रूप से, details विजेट्स बंद होते हैं; आप उन्हें पहले से खुला दिखाने के लिए open एट्रिब्यूट इस्तेमाल कर सकते हैं।

उदाहरण: Native Accordions with details

markup
<details>
  <summary>Click to expand</summary>
  <p>Hidden content revealed here.</p>
</details>

summary Heading को कस्टमाइज़ करना

summary टैग आपके details विजेट की दिखने वाली, क्लिक करने योग्य heading परिभाषित करता है। इस heading पर क्लिक करने से details का बाकी कंटेंट खुलता या बंद होता है, और यह डिफ़ॉल्ट रूप से बगल में एक छोटे disclosure triangle के साथ दिखता है।

Note: SEO के लिए एक व्यवस्थित heading आउटलाइन बनाए रखने के लिए अपने summary टेक्स्ट को heading टैग्स (जैसे h3) के अंदर रैप करें।
Warning: summary टैग को आपके parent details टैग के अंदर सबसे पहला child एलिमेंट होना चाहिए।

उदाहरण: Customizing the summary Heading

markup
<details>
  <summary><h3>FAQ Question</h3></summary>
  <p>Answer text</p>
</details>

open के साथ पहले से Expanded Accordions

आप अपने details विजेट के ओपनिंग टैग में open एट्रिब्यूट जोड़कर उसे पेज लोड होते ही पहले से खुला हुआ दिखा सकते हैं। यह किसी मुख्य नोटिस या किसी लिस्ट के पहले सवाल को हाइलाइट करने के लिए बेहद उपयोगी है।

Note:
  • अपने accordions को नियंत्रित करने के लिए आप अपनी स्क्रिप्ट्स के अंदर open एट्रिब्यूट को डायनामिक रूप से टॉगल कर सकते हैं।
  • Accepted values:
  • open — boolean attribute (present or open="")
  • Toggle event fires when it changes
Warning: हर details विजेट में मैन्युअली open एट्रिब्यूट जोड़ना आपके लेआउट को कॉम्पैक्ट रखने के मकसद को ही खत्म कर देता है।

उदाहरण: Pre-expanded Accordions with open

markup
<details open>
  <summary>Already expanded</summary>
  <p>Visible by default</p>
</details>

Disclosure Triangle को कस्टमाइज़ करना

डिफ़ॉल्ट रूप से, ब्राउज़र आपके summary टेक्स्ट के बगल में एक छोटा disclosure triangle रेंडर करते हैं। आप स्टैंडर्ड CSS प्रॉपर्टीज़ का उपयोग करके इस triangle को आसानी से कस्टमाइज़ या हटा सकते हैं।

Note: अपने डिज़ाइन से मैच करने के लिए डिफ़ॉल्ट triangle हटाएँ और उसे कस्टम '+' या '-' कैरेक्टर्स से बदलें।
Warning: पुराने Safari ब्राउज़र्स को डिफॉल्ट triangle छिपाने के लिए एक prefix selector (-webkit-details-marker) चाहिए होता है।

उदाहरण: Customizing the Disclosure Triangle

markup
<style>
  summary {
    list-style: none;
  }
</style>
<details>
  <summary>Custom marker</summary>
  <p>Content</p>
</details>

कई Accordions को ग्रुप करना

आप साफ-सुथरे, प्रोफेशनल Accordion मेनू बनाने के लिए कई details विजेट्स को एक साथ ग्रुप कर सकते हैं। आप यहाँ तक कि सिंपल स्क्रिप्ट्स भी लिख सकते हैं जो जब यूज़र कोई नया विजेट खोले तब बाकी विजेट्स बंद कर दें, जिससे एक सच्चा Accordion मेनू फ्लो बनता है।

Note:
  • कॉम्पैक्ट सेटिंग्स मेनू या साइडबार डायरेक्टरीज़ के लिए details ग्रुप्स का उपयोग करें।
  • Accepted values:
  • name — same string on several details makes them mutually exclusive
  • open — boolean; preopened item
Warning: लेआउट टकराव से बचने के लिए सुनिश्चित करें कि हर details विजेट स्वतंत्र रूप से काम करे।

उदाहरण: Grouping Multiple Accordions

markup
<details>
  <summary>Question 1</summary>
  <p>Answer 1</p>
</details>
<details>
  <summary>Question 2</summary>
  <p>Answer 2</p>
</details>
Live Example
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.