HTML 下拉列表(下拉菜单)

HTML 下拉列表(select)是一种常见的表单元素,用于提供多个选项供用户来选择其中一项。下拉列表通常呈现为一个带有文本框和下拉箭头的控件,当用户点击下拉箭头即可显示选项列表,并选择其中一个选项,如下图所示。

HTML下拉列表

HTML 下拉列表简介

在 HTML 中,下拉列表(下拉菜单)由 selectoption 这 2 个标签配合使用来表示的。这一点跟无序列表很像,其中无序列表是由 ulli 这 2 个标签配合使用来表示。

语法:

<select>
    <option value="值1">选项A </option>
    <option value="值2">选项B</option>
    ……
    <option value="值n">选项N</option>
</select>

说明:

为了更好地理解,我们可以把下拉列表看成是一种 “特殊的无序列表”。

  • ul 变成了 select(外层容器)。
  • li 变成了 option(列表项)。

示例 1:HTML 创建下拉列表

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form method="post" action="/">
        <select>
            <option value="html">HTML</option>
            <option value="css">CSS</option>
            <option value="javascript">JavaScript</option>
            <option value="vue">Vue</option>
            <option value="react">React</option>
        </select>
    </form>
</body>
</html>

页面效果如下图所示。

默认的HTML下拉列表

分析:

在 HTML 中,下拉列表是最节省页面空间的一种方式,因为它在默认情况下只显示一个选项,只有点击后才会看到全部选项。

当我们点击下拉列表后,全部选项就会显示出来,页面效果如下图所示。

展开后的HTML下拉列表

需要注意的是,很多初学的小伙伴容易偷懒,不给每一个 option 添加 value 属性。虽然浏览器也能运行,但这不是标准写法。为每一个 option 添加一个 value 属性,主要目的是方便后端处理数据。

<!--推荐-->
<option value="html">HTML</option>

<!--不推荐-->
<option value="html">HTML</option>

HTML select 标签属性

在 HTML 中,select 标签常用属性有很多,如下表所示。

select 标签的常用属性
属性 说明
name 下拉列表的名称,用于表单提交时标识数据
size 设置显示的可见项的数量,默认为 1
multiple 是否允许选择多项,默认为 false
disabled 下拉列表是否禁用,默认为 false
required 下拉列表是否必填,默认为 false

示例 2:select 标签的 size 属性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form method="post" action="/">
        <select name="colors" size="7">
            <option value="red"></option>
            <option value="orange"></option>
            <option value="yellow"></option>
            <option value="green">绿</option>
            <option value="cyan"></option>
            <option value="blue"></option>
            <option value="purple"></option>
        </select>
    </form>
</body>
</html>

页面效果如下图所示。

HTML select标签的size属性

分析:

有些小伙伴将 size 取值为 1、2、3 时,会发现 Chrome 浏览器无效。这是因为 Chrome 浏览器最低是 4 个选项,因此我们只能选取 4 及以上数字。

示例 3:select 标签的 multiple 属性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form method="post" action="/">
        <select name="colors" multiple>
            <option value="red"></option>
            <option value="orange"></option>
            <option value="yellow"></option>
            <option value="green">绿</option>
            <option value="cyan"></option>
            <option value="blue"></option>
            <option value="purple"></option>
        </select>
    </form>
</body>
</html>

页面效果如下图所示。

HTML select标签的multiple属性

分析:

下拉列表默认只能选择一项,而我们可以通过 multiple 属性来设置下拉列表可以选择多项。如果想要选取多项,可以使用 “Ctrl + 鼠标左键” 来选取。multiple 属性是 HTML5 新增的,下面 2 种写法是等价的,推荐简写形式。

<!--简写形式-->
<select name="colors" multiple>

<!--完整形式-->
<select name="colors" multiple="true">

HTML option 标签属性

在 HTML 中,option 标签的属性有很多,常用的如下表所示。

option 标签常用属性
属性 说明
value 选项的值
label 选项的显示文本,默认为 value 属性的值
selected 是否选中,默认为 false
disabled 是否禁用

示例 4:option 标签的 selected 属性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form method="post" action="/">
        <select size="5">
            <option value="html">HTML</option>
            <option value="css">CSS</option>
            <option value="javascript" selected>JavaScript</option>
            <option value="vue">Vue</option>
            <option value="react">React</option>
        </select>
    </form>
</body>
</html>

页面效果如下图所示。

HTML option标签使用selected属性

分析:

selected 属性也是 HTML5 新增的,下面 2 种写法是等价的。

<!--简写形式-->
<option value="javascript" selected>JavaScript</option>

<!--完整形式-->
<option value="javascript" selected="true">JavaScript</option>

对于上面例子来说,如果我们把 size="5" 去掉,此时页面效果如下图所示。

html option标签不使用size属性

HTML optgroup 标签

当选项非常多时(比如有几百个城市、或几十种编程语言),如果全堆在一起,用户体验会变得非常差。此时,我们可以使用 optgroup 标签给选项进行 “分组”。

示例 5:使用 optgroup 标签进行分组

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <form>
        <h3>请选择语言:</h3>
        <select name="language">
            <optgroup label="前端技术">
                <option value="html">HTML</option>
                <option value="css">CSS</option>
                <option value="js">JavaScript</option>
            </optgroup>
            <optgroup label="后端技术">
                <option value="python">Python</option>
                <option value="go">Go</option>
                <option value="java">Java</option>
            </optgroup>
        </select>
    </form>
</body>
</html>

页面效果如下图所示。

HTML optgroup 标签示例效果1

分析:

当我们点击展开下拉菜单时,页面效果如下图所示。

HTML optgroup 标签示例效果2

上一篇: HTML 上传文件

下一篇: HTML 框架

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号