父子结构(树形结构)下拉框

项目中可能经常要做具有父子结构的下拉框,像这样:
父子结构(树形结构)下拉框_第1张图片
实战时,思维一直是用js插件来实现,今天重新学习HTML5时,发现可以直接用select和option实现,具体代码如下:

<select>
    <optgroup label="人力资源部">
        <option>小花option>
        <option>小梅option>
    optgroup>
    <optgroup label="研发部">
        <option>小明option>
        <option>发仔option>
    optgroup>
select>

其中最关键的就是optgroup标签了,它的作用是定义选项组。optgoup的属性label用来为选项组定义描述。使用这种方法也存在局限性:首先,不能选择整个选项组,如我们不能选择研发部这个父选项;其次,不能实现收缩,当选项数目众多时,下拉框就会过长。

补充:datalist,用来定义选项列表

使用如下:

list="browsers">
"browsers">
  <option value="Internet Explorer">option>
  <option value="Firefox">option>
  <option value="Chrome">option>
  <option value="Opera">option>
  <option value="Safari">option>

效果如下:
父子结构(树形结构)下拉框_第2张图片
有几点需要注意的是:

  1. 可以实现类似ajax的效果,比如我们在输入框中输入c时,会出现下拉选项chrome
  2. 下拉框显示的值是通过option的value属性设置的,当option的内容设置与value值一样时,则不显示内容,当不一样时,内容部分会显示在value值后面,也颜色更淡,像这样:
    父子结构(树形结构)下拉框_第3张图片
    当选择值时,填入输入框的是value的值,即当我们选择Firefox bbb时,填入输入框的是Firefox
  3. 不能通过optgroup标签实现父子结构的下拉框

你可能感兴趣的:(css)