成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

復雜的可過濾下拉選框?只需要一個Datalist 標簽

開發 前端
本文將介紹 HTML5 規范中,比較有意思的一個標簽 <datalist>,通過它,我們可以快速構建下拉選框,快速構建可輸入過濾選項的下拉選框。

[[429941]]

大家好,我是 Coco,今天給大家帶來一個很有意思的標簽<datalist>,閱讀本文需要 5 分鐘。,閱讀本文需要 5 分鐘。

本文將介紹 HTML5 規范中,比較有意思的一個標簽 <datalist>,通過它,我們可以 ,通過它,我們可以

  1. 快速構建下拉選框
  2. 快速構建可輸入過濾選項的下拉選框

什么是 <datalist>

經常制作表單的同學一定對下拉選框不陌生。

傳統的下拉選框 select[1],類似于這樣:

  1. <label for="pet-select">Choose a pet:</label> 
  2. <select name="pets" id="pet-select"
  3.     <option value="">--Please choose an option--</option> 
  4.     <option value="dog">Dog</option
  5.     <option value="cat">Cat</option
  6.     <option value="hamster">Hamster</option
  7.     <option value="parrot">Parrot</option
  8.     <option value="spider">Spider</option
  9.     <option value="goldfish">Goldfish</option
  10. </select

然而,這僅僅是最基礎的用法。通常而言,業務中對一個下拉選框的要求會更多。

其中一項便是當選項特別多的時,需要有可搜索過濾的功能,譬如 Element-UI[2] 封裝的 Select 組件,就提供搜索的功能:

其實,HTML5 也原生提供了可以輸入過濾的下拉選框,也就是本文將介紹的 -- <datalist>。

使用 <datalist> 實現輸入過濾的下拉選框 實現輸入過濾的下拉選框

使用 <datalist> 其實非常簡單,它的核心就是提供了可輸入過濾的下拉選框功能。

我們需要利用一個 <input> 標簽和 <datalist> 關聯起來,簡單的示例如下: 其實非常簡單,它的核心就是提供了可輸入過濾的下拉選框功能。

  1. <label>Choose a browser from this list: 
  2. <input list="browsers" name="myBrowser" /></label> 
  3. <datalist id="browsers"
  4.   <option value="Chrome"
  5.   <option value="Firefox"
  6.   <option value="Internet Explorer"
  7.   <option value="Opera"
  8.   <option value="Safari"
  9. </datalist> 

關聯起來, 內的 list 屬性的值為關聯的 的 id。

上述代碼通過了 <input> 內的 list 屬性和定義的 <datalist> 關聯起來,<input> 內的 list 屬性的值為關聯的 <datalist> 的 id。

這樣,我們就能直接實現一個可輸入過濾的下拉選框功能:

一看就懂,其實 <datalist> 使用起來還是非常簡單。 使用起來還是非常簡單。

使用的局限性

其實成為標準已經很久了。然而,大家會發現這個標簽的出鏡率其實并不高。<datalist> 使用的局限性

<datalist> 其實成為標準已經很久了。然而,大家會發現這個標簽的出鏡率其實并不高。

限制了 <datalist> 被大規模使用的原因在于其 CSS 樣式無法得到有效的修改,<datalist> 和 <select> 非常類似,很難用 CSS 進行高效的設計。

瀏覽給這類元素定義了默認樣式,并且我們無法通過 CSS 去修改它們。最為致命的是,瀏覽器默認樣式的表現在不同瀏覽器之間并不一致。這給追求穩定,UI 表現一致的業務來說,是災難性的缺點!

所以我們日常中使用到業務中的這些復雜表單元素,通常都是使用了使用非語義元素 <div>、<ul> 等普通標簽模擬 HTML 結構,使用了 JavaScript 添加行為,再使用 WAI-ARIA 來提供語義。

當然,這也不代表它們完全沒有用武之地,在一些非業務環境下,合理使用 <datalist> 還是能夠很少代碼量的。
被大規模使用的原因在于其 CSS 樣式無法得到有效的修改,

參考資料

[1]select:

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/select

[2]Element-UI:

https://element.eleme.io/#/zh-CN/component/select

 

責任編輯:姜華 來源: iCSS前端趣聞
相關推薦

2018-08-03 12:21:02

2020-07-21 08:42:16

搞垮服務器日志

2022-08-24 16:26:51

Linuxcheat 命令

2016-12-13 17:02:49

androidjava移動應用開發

2021-04-16 09:17:39

機器學習人工智能AI

2020-04-01 11:12:43

腦機接口機器翻譯人工智能

2009-04-09 16:52:47

LinuxUbuntu 9.04

2019-10-31 10:43:05

Python 開發編程語言

2018-03-07 10:03:40

2023-05-23 10:01:51

冪等性抽象代數

2022-10-08 06:26:48

人工智能機器學習藝術

2019-10-28 11:30:43

架構數據結構布隆過濾器

2023-10-11 12:45:49

Windows系統

2010-03-16 16:47:25

Ubuntu 9.04

2021-07-13 08:14:27

色彩用色類型輔助色

2018-01-05 15:36:12

工具博客寫作

2021-02-03 11:20:41

Docker架構容器

2018-01-09 15:44:57

2018-03-18 23:34:57

2019-08-06 09:03:52

程序員Java編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线观看一区二区 | 精品免费视频 | 国产亚洲精品久久久久动 | 午夜天堂精品久久久久 | 亚洲精品一区二区 | 亚洲综合色网站 | 日本一区二区三区精品视频 | 91网站在线播放 | 九九导航 | 国产精品有限公司 | 久久久精品视频免费看 | 国产精品成人久久久久 | 在线观看特色大片免费网站 | 青青草一区二区三区 | 夏同学福利网 | 97精品久久 | 色爱区综合 | 欧美激情黄色 | 欧美日韩专区 | 久久一区二区视频 | 国产成人免费视频网站高清观看视频 | 午夜爱爱毛片xxxx视频免费看 | 黄视频免费 | 夜夜久久 | 亚洲精品免费观看 | 亚洲精品9999 | 日韩欧美中文在线 | 国产片淫级awww | 国产一区二区 | 欧美三区 | 午夜影院在线观看 | 亚洲欧美激情国产综合久久久 | www.一区二区 | 国产精品九九 | 亚洲国产精品成人无久久精品 | 久久国产秒 | 国产成人精品一区 | 黄色网址在线免费观看 | 黄色在线免费观看视频网站 | 亚洲狠狠 | 亚洲精品黑人 |