Skip to content
Related Articles

Related Articles

How to create Nested Accordion using Google AMP amp-accordion?
  • Last Updated : 30 Sep, 2020

Introduction:

Sometimes we have a lot of content to display and to make the website look pretty and short we make use of the collapsible textboxes. Collapsible textboxes are that division which is the combination of heading and content, generally only heading is visible but when it is hit the content is displayed.

Setup:

  • You have to import amp-accordion component in your header to use this tag.




<script async custom-element="amp-accordion"
</script>
  • To make a nested accordion use the code mentioned below:




<amp-accordion class="sample" disable-session-states>
  <section>
    <amp-accordion class="nested-accordion">
      <section>
        <h4>Nested Section 1</h4>
        <p>content</p>
      </section>
      <section>
        <h4>Nested Section 2</h4>
        <p>content</p>
      </section>
    </amp-accordion>
  </section>
</amp-accordion>

Example:




<!DOCTYPE html>
<html <img draggable="false" 
class="emoji" alt="" s
    <head>
        <meta charset="utf-8" />
        <script async src=
      </script>
        <script async custom-element="amp-accordion"
                src=
      </script>
        <link rel="canonical"
              href=
        <meta name="viewport" 
              content="width=device-width, 
                       minimum-scale=1,
                       initial-scale=1" />
        <style amp-boilerplate>
            body {
                -webkit-animation: 
                  -amp-start 8s steps(1, end) 0s 1 normal both;
                -moz-animation:
                  -amp-start 8s steps(1, end) 0s 1 normal both;
                -ms-animation:
                  -amp-start 8s steps(1, end) 0s 1 normal both;
                animation:
                  -amp-start 8s steps(1, end) 0s 1 normal both;
            }
            @-webkit-keyframes -amp-start {
                from {
                    visibility: hidden;
                }
                to {
                    visibility: visible;
                }
            }
            @-moz-keyframes -amp-start {
                from {
                    visibility: hidden;
                }
                to {
                    visibility: visible;
                }
            }
            @-ms-keyframes -amp-start {
                from {
                    visibility: hidden;
                }
                to {
                    visibility: visible;
                }
            }
            @-o-keyframes -amp-start {
                from {
                    visibility: hidden;
                }
                to {
                    visibility: visible;
                }
            }
            @keyframes -amp-start {
                from {
                    visibility: hidden;
                }
                to {
                    visibility: visible;
                }
            }
        </style>
        <noscript>
            <style amp-boilerplate>
                body {
                    -webkit-animation: none;
                    -moz-animation: none;
                    -ms-animation: none;
                    animation: none;
                }
            </style>
        </noscript>
  
        <style amp-custom>
            amp-accordion section[expanded] .show-more {
                display: none;
            }
  
            .nested-accordion h4 {
                font-size: 14px;
                background-color: #ddd;
            }
  
            amp-accordion.hidden-header section[expanded] h4 {
                border: none;
            }
  
            /* these styles are not
          required for the samples to work */
            :root {
                --space-2: 1rem;
                /* 16px */
            }
  
            amp-accordion.sample {
                margin: var(--space-2);
            }
  
            h1,
            h4 {
                color: forestgreen;
            }
            section {
                color: crimson;
            }
        </style>
        <meta name="robots" 
              content="noindex, nofollow" />
    </head>
    <body>
        <center>
            <h1>
                Geeks For Geeks
            </h1>
        </center>
        <amp-accordion class="sample"
                       disable-session-states>
            <section>
                <h4>Section 1</h4>
                <p>GeeksforGeeks is a Computer 
                  Science portal for geeks.</p>
            </section>
            <section>
                <h4>Section 2</h4>
                <amp-accordion class="nested-accordion">
                    <section>
                        <h4>Nested Section 2.1</h4>
                        <p>GeeksforGeeks is a Computer
                          Science portal for geeks.
                          It contains well written, 
                          well thought and well explained 
                          computer science and programming 
                          articles, quizzes etc.</p>
                    </section>
                    <section>
                        <h4>Nested Section 2.2</h4>
                        <p>GeeksforGeeks is a Computer 
                          Science portal for geeks. It 
                          contains well written, well
                          thought and well explained 
                          computer science and programming 
                          articles, quizzes etc.</p>
                    </section>
                </amp-accordion>
            </section>
        </amp-accordion>
    </body>
</html>

Output:

full-stack-img




My Personal Notes arrow_drop_up
Recommended Articles
Page :