- AMP:Building Accelerated Mobile Pages
- Ruadhan O'Donoghue
- 360字
- 2021-07-08 10:04:11
Building collapsible content with <amp-accordion>
Collapsible content can help provide a great user experience on mobile devices, where screen space is restricted. An accordion UI component is a list of content sections, each of which can be in an expanded or collapsed state. You've probably seen accordions on the web before and maybe you've designed a web page that uses them. They're widely used on the web, with many different use cases, such as collapsing web page comment sections or for providing an expandable overview of article categories, in a news site, for example. We'll implement this latter use case shortly.
AMP comes with an extended component for building accordions: amp-accordion. Let's see how it works.
First, as usual, you need to include the extended component in the head of your document:
<script async custom-element="amp-accordion" src="https://cdn.ampproject.org/v0/amp-accordion-0.1.js"></script>
Next, we'll add some content sections. AMP uses the HTML5 section tag for this, with the following conditions:
- Each section must be a direct child of amp-accordion
- Each section must have exactly two children:
- The first child must be a header tag: one of h1, h2, ..., h6, or header
- The second child can be any valid AMP-HTML tag, that is, an AMP component or an HTML tag, even another amp-accordion:
We'll start with the following code (/ch4/accordion.html):
<amp-accordion>
<section>
<h3>Item 1</h3>
<div>The section content</div>
</section>
<section>
<h3>Item 2</h3>
<amp-img src="img/penguin.jpg" layout="fixed" width="125"
height="75"></amp-img>
</section>
...
</amp-accordion>
This should result in an accordion like the one shown in the following image:

So, that seems straightforward. Out of the box, we get a simple, functional accordion, but it's going to need some styling before we can show it to the world.
First, let's develop the content a bit more. So far, we've worked on an article page for a website. Let's say we wanted to show a list of categories with some top stories in each category. We can build this list and make each section expandable with amp-accordion.
- Docker and Kubernetes for Java Developers
- Visual C++串口通信開發入門與編程實踐
- C語言程序設計基礎與實驗指導
- Python程序設計
- JS全書:JavaScript Web前端開發指南
- 深度強化學習算法與實踐:基于PyTorch的實現
- Mastering Google App Engine
- QGIS By Example
- Apache Mahout Clustering Designs
- Go語言精進之路:從新手到高手的編程思想、方法和技巧(1)
- 零基礎學C語言第2版
- Julia 1.0 Programming Complete Reference Guide
- 響應式Web設計:HTML5和CSS3實戰(第2版)
- Access 2010數據庫應用技術實驗指導與習題選解(第2版)
- 深度學習程序設計實戰