3、HTML列表与链接:无序列表、有序列表、自定义列表、超链接、锚点链接
列表和链接,可以说是HTML里最常用的两个东西了。你想想看,哪个网页没有导航菜单?哪个页面不需要跳转?我做了这么多年前端,几乎每天都在跟它们打交道。今天咱们就把它们彻底搞明白。
3.1 无序列表:最常用的列表
无序列表,说白了就是前面带个小圆点的列表。你看到的导航菜单、商品列表、文章分类,大部分都是用无序列表做的。
它的结构很简单:
<ul>
<li>前端开发</li>
<li>后端开发</li>
<li>全栈开发</li>
</ul>
显示效果就是:
- 前端开发
- 后端开发
- 全栈开发
我的小习惯:我个人习惯把导航菜单都用ul包起来。为什么呢?因为ul天然就有语义,搜索引擎和屏幕阅读器都能识别出这是一个列表。比用一堆div堆出来的菜单要友好得多。
无序列表可以嵌套,这在做多级菜单时特别有用:
<ul>
<li>编程语言
<ul>
<li>JavaScript</li>
<li>Python</li>
<li>Java</li>
</ul>
</li>
<li>框架
<ul>
<li>Vue</li>
<li>React</li>
</ul>
</li>
</ul>
3.2 有序列表:有顺序的列表
有序列表就是前面带数字的列表。什么时候用?比如排行榜、操作步骤、比赛名次这些有明确顺序的场景。
<ol>
<li>打开编辑器</li>
<li>创建HTML文件</li>
<li>编写代码</li>
<li>保存并预览</li>
</ol>
显示效果:
- 打开编辑器
- 创建HTML文件
- 编写代码
- 保存并预览
避坑指南:我曾经接手过一个项目,里面有个排行榜,用的是ul加手动写的数字。后来要插入一条数据,所有数字都得改一遍,那叫一个痛苦。所以记住:有顺序就用ol,别自己写数字。
有序列表还可以设置起始值和类型:
<ol start="5" type="A">
<li>第五步</li>
<li>第六步</li>
</ol>
type属性可以设置成:1(数字)、A(大写字母)、a(小写字母)、I(大写罗马数字)、i(小写罗马数字)。
3.3 自定义列表:成对出现的数据
自定义列表你可能用得少一些,但它其实很实用。它由两部分组成:术语(dt)和描述(dd)。
最适合的场景是什么?比如产品参数、词典解释、问答列表这些成对出现的内容。
<dl>
<dt>HTML</dt>
<dd>超文本标记语言,负责网页结构</dd>
<dt>CSS</dt>
<dd>层叠样式表,负责网页样式</dd>
<dt>JavaScript</dt>
<dd>脚本语言,负责网页交互</dd>
</dl>
显示效果:
- HTML
- 超文本标记语言,负责网页结构
- CSS
- 层叠样式表,负责网页样式
- JavaScript
- 脚本语言,负责网页交互
我的经验:我在做产品详情页时,经常用dl来展示产品规格。比如「屏幕尺寸:6.1英寸」、「电池容量:4000mAh」这种。比用表格更语义化,也比用p标签更清晰。
3.4 超链接:网页的命脉
没有链接的网页,就像一座孤岛。超链接让整个互联网连在了一起。
最基本的用法:
<a href="https://www.example.com">访问示例网站</a>
链接有几个重要的属性:
| 属性 | 作用 | 示例 |
|---|---|---|
| href | 链接目标地址 | href="https://..." |
| target | 打开方式 | target="_blank" |
| title | 鼠标悬停提示 | title="点击查看详情" |
| rel | 关系描述 | rel="noopener" |
重要提醒:用target="_blank"打开新窗口时,一定要加上rel="noopener noreferrer"。为什么?因为不加的话,新打开的页面可以通过window.opener控制你的原页面。我曾经见过一个钓鱼网站就是利用这个漏洞。安全无小事。
链接还可以是图片、按钮,甚至是一段文字中的某个词:
<a href="detail.html">
<img src="product.jpg" alt="产品图片">
</a>
<p>更多内容请<a href="about.html">关于我们</a></p>
3.5 锚点链接:页面内的导航
锚点链接,说白了就是页面内部的跳转。比如你点一下「回到顶部」,页面就嗖的一下滚上去了。
实现起来分两步:
第一步,在目标位置设置锚点:
<h2 id="section1">第一章:HTML基础</h2>
第二步,创建指向锚点的链接:
<a href="#section1">跳转到第一章</a>
注意href里的#号,它表示这是一个页面内的锚点,而不是外部链接。
实用技巧:我经常用锚点链接做长页面的目录导航。比如一个产品说明书,顶部放个目录,每个目录项都指向对应的锚点。用户点一下就能跳到对应位置,体验特别好。
锚点也可以指向其他页面的某个位置:
<a href="help.html#faq">查看常见问题</a>
这样点击后,会先打开help.html页面,然后自动滚动到id为faq的位置。
3.6 综合实战:做一个简单的导航菜单
来,咱们把今天学的知识串起来,做一个简单的页面导航:
<!-- 导航菜单 -->
<nav>
<ul>
<li><a href="#html">HTML</a></li>
<li><a href="#css">CSS</a></li>
<li><a href="#js">JavaScript</a></li>
</ul>
</nav>
<!-- 内容区域 -->
<h2 id="html">HTML 基础</h2>
<p>HTML是网页的骨架...</p>
<h2 id="css">CSS 样式</h2>
<p>CSS让网页变得好看...</p>
<h2 id="js">JavaScript 交互</h2>
<p>JS让网页动起来...</p>
你看,无序列表ul用来做菜单结构,a标签实现跳转,锚点让页面内导航变得流畅。这三个知识点配合起来,一个完整的页面导航就出来了。
最后说一句:列表和链接看着简单,但用好它们需要多练。我建议你平时看网页的时候,多按F12看看别人的代码是怎么写的。看得多了,自然就知道什么时候该用ul,什么时候该用ol,什么时候用dl更合适。