浏览您的网站
大多数移动网站都包含网站导航菜单。这些菜单可以采用多种不同的形式。在本教程中,我们将尝试以下示例,用于在 AMP 页面中显示导航
- 返回主页的链接 - 最简单的选项。
- 使用
amp-sidebar
组件的侧边导航栏。
返回主页的链接
让用户访问网站常规导航选项的最简单方法就是将他们引导回主页!
尝试用包含链接的此版本替换您的 <header>
标签
<header class="headerbar">
<a href="homepage.html">
<amp-img class="home-button" src="icons/home.png" width="36" height="36"></amp-img>
</a>
<div class="site-name">News Site</div>
</header>
并将这些样式规则添加到您的内联 CSS
.home-button {
margin-top: 8px;
}
.headerbar {
height: 50px;
position: fixed;
z-index: 999;
top: 0;
width: 100%;
display: flex;
align-items: center;
}
.site-name {
margin: auto;
}
article {
margin-top: 50px;
}
现在刷新页面。您应该在页面的左上角看到一个指向 homepage.html
的链接。如果您单击主页图标,您会很快发现它不会指向任何地方(因为我们没有 homepage.html
文件)。
此链接可以替换为网站主页的 URL,以允许用户通过您现有的网站导航浏览到您网站的其他部分。
这是利用您现有网站导航的最简单方法。接下来,我们将探讨一种流行的网站导航选项。
使用侧边栏导航
一种常见的导航技术是添加一个菜单图标,单击该图标时会显示一组导航链接(在页面的一侧)。在 AMP 中,我们可以使用 amp-sidebar
组件创建此类导航。
首先,我们必须将 amp-sidebar
组件的 JavaScript 添加到 <head>
标签
<script async custom-element="amp-sidebar" src="https://cdn.ampproject.org/v0/amp-sidebar-0.1.js"></script>
接下来,我们希望显示一个菜单图标。当点击该图标时,它将打开侧边栏。用以下代码替换 <header>
以显示 "汉堡包" 图标,而不是主页图标
<header class="headerbar">
<div role="button" on="tap:sidebar1.toggle" tabindex="0" class="hamburger">☰</div>
<div class="site-name">News Site</div>
</header>
在上面的代码中,我们通过 on
操作属性在 amp-sidebar
元素(由 sidebar1
ID 标识)上切换
侧边栏。让我们添加侧边栏。
在 </header>
之后添加以下 HTML
<amp-sidebar id="sidebar1" layout="nodisplay" side="left">
<div role="button" aria-label="close sidebar" on="tap:sidebar1.toggle" tabindex="0" class="close-sidebar">✕</div>
<ul class="sidebar">
<li><a href="#">Example 1</a></li>
<li><a href="#">Example 2</a></li>
<li><a href="#">Example 3</a></li>
</ul>
</amp-sidebar>
我们的侧边栏将被隐藏,但当用户点击汉堡包图标时,菜单将从屏幕左侧出现。要关闭菜单,用户可以点击 X 图标。
最后,将这些样式规则添加到您的内联 CSS
.hamburger {
padding-left: 10px;
}
.sidebar {
padding: 10px;
margin: 0;
}
.sidebar > li {
list-style: none;
margin-bottom:10px;
}
.sidebar a {
text-decoration: none;
}
.close-sidebar {
font-size: 1.5em;
padding-left: 5px;
}
好的,让我们看看我们的侧边栏。刷新并重新加载您的 AMP 页面。您应该看到类似这样的内容
我们的页面看起来很棒!让我们添加一个最后的润色——自定义字体。