圖文并茂將HTML5中的新增表單元素徹底搞明白

      網(wǎng)友投稿 822 2025-03-31

      在HTML4.01中,表單的類型以及使用方法都非常有限。HTML5在HTML4.01的基礎(chǔ)上,對表單進行了以下兩個方向的擴展。


      新增input元素類型。

      新增其他表單元素。

      這兩個方向的擴展,使得代碼量大大減少,可以極大地提高開發(fā)效率。

      1、新增input元素類型

      在HTML5中,大量地增加了input元素的種類。換句話說就是,input元素的type屬性新增了大量屬性值,如下表所示:

      1.1、驗證型:

      1.1.1、email

      當(dāng)type屬性取值為“email”時,表示這是輸入電子郵件的文本框(語義化)。

      語法:

      舉例:

      結(jié)果:

      說明:

      當(dāng)我們輸入非電子郵件格式的字符,然后點擊【提交】按鈕時,會發(fā)現(xiàn)無法提交并且彈出提示內(nèi)容,效果如圖所示。這里有一點要說明,即必須是submit按鈕才會彈出提示內(nèi)容,使用其他按鈕(如button按鈕)則不會。這是因為email類型的文本框采用了瀏覽器內(nèi)置的驗證機制,而瀏覽器內(nèi)置的驗證機制必須使用submit按鈕才會觸發(fā)。

      1.1.2、tel

      當(dāng)type屬性取值為“tel”時,表示這是輸入電話號碼的文本框(語義化)。

      語法:

      舉例:

      結(jié)果:

      說明:

      當(dāng)我們輸入非電話號碼格式的字符,然后點擊【提交】按鈕時,卻發(fā)現(xiàn)居然可以提交!這是怎么回事呢?其實tel類型文本框并不具備完備的驗證功能,如果想要達到驗證效果,則需要結(jié)合3.2節(jié)介紹的pattern屬性來實現(xiàn)。

      1.1.3、url

      當(dāng)type屬性取值為“url”時,表示這是輸入URL的文本框(語義化)。

      語法:

      舉例:

      結(jié)果:

      說明:

      當(dāng)我們輸入非URL格式的字符,然后點擊【提交】按鈕時,會發(fā)現(xiàn)無法提交并且彈出提示內(nèi)容,效果如圖所示。所謂的URL格式字符,指的是以“http://”或者“https://”開頭的網(wǎng)絡(luò)地址。

      1.2、取值型:

      1.2.1、range

      當(dāng)type屬性取值為“range”時,我們可以通過拖動滑動條獲取某一個范圍內(nèi)的數(shù)字。

      語法:

      min屬性用于設(shè)置最小值,max屬性用于設(shè)置最大值,step屬性用于設(shè)置間隔數(shù)。這3個屬性的取值可以是整數(shù),也可以是小數(shù)。

      舉例:

      Title

      結(jié)果:

      說明:

      上面這句代碼表示:滑動條最小值為-10,最大值為10,每次拖動只能改變5(增加5或減少5)。value="-10"用于設(shè)置滑動條的初始值,設(shè)置不同的value值,滑塊也會出現(xiàn)在對應(yīng)數(shù)值的位置。在實際開發(fā)中,range類型元素都是需要結(jié)合javaScript來操作的,上面這個例子就是最簡單也是最經(jīng)典的。此外,output元素用于定義表單元素的輸出結(jié)果。

      1.2.2、number

      當(dāng)type屬性取值為“number”時,我們可以通過使用微調(diào)按鈕來獲取某一個范圍的數(shù)字。

      語法:

      min屬性用于設(shè)置最小值,max屬性用于設(shè)置最大值,step屬性用于設(shè)置間隔數(shù)。它們的屬性取值可以是整數(shù),也可以是小數(shù)。number類型跟range類型功能非常相似,都是獲取某一個范圍內(nèi)的數(shù)字。不過兩者的外觀不一樣,其中number類型使用的是“微調(diào)按鈕”,而range類型使用的是“滑塊”。

      舉例:

      Title

      結(jié)果:

      說明:

      在這個例子中,我們可以直接在文本框中輸入數(shù)字,也可以通過右邊的微調(diào)按鈕來改變數(shù)字。

      1.2.3、color

      當(dāng)type屬性取值為“color”時,我們可以直接使用瀏覽器自帶的取色工具來獲取顏色值。

      語法:

      value屬性用于設(shè)置顏色初始值,格式必須是十六進制顏色值如#F1F1F1,不能是關(guān)鍵字(如black)和rgba顏色(如rgba(255, 255, 255, 0.5))。

      舉例:

      Title

      結(jié)果:

      說明:

      當(dāng)我們點擊color類型元素時,瀏覽器會彈出自帶的取色工具,以方便直接選取顏色值,如下圖所示。

      1.2.4、date

      當(dāng)type屬性取值為“date”時,我們可以直接使用瀏覽器自帶的日歷工具來獲取日期(年、月、日)。

      語法:

      value屬性用于設(shè)置日期初始值,格式必須如“2018-05-20”。

      舉例:

      Title

      結(jié)果:

      說明:

      當(dāng)我們點擊date類型元素時,瀏覽器會彈出自帶的日歷工具,以方便直接選取日期,如下圖所示。此外,value屬性用于設(shè)置日期初始值,格式必須如“2021-07-27”,像“2018–7-27”這種是無效的。

      1.2.5、time

      當(dāng)type屬性取值為“time”時,我們可以直接使用瀏覽器自帶的工具來獲取時間(時、分)。

      語法:

      value屬性用于設(shè)置時間初始值,格式必須如“08:04”。

      舉例:

      Title

      結(jié)果:

      說明:

      當(dāng)我們點擊time類型元素時,文本框右邊會出現(xiàn)微調(diào)按鈕,以方便調(diào)整時間,如下圖所示。此外,value屬性用于設(shè)置時間初始值,格式必須如“08:04”,像“8:4”這種是無效的。

      1.2.6、month

      當(dāng)type屬性取值為“month”時,我們可以使用瀏覽器自帶的工具來獲取“月數(shù)”。

      語法:

      value屬性用于設(shè)置初始值,格式必須如“2021-07”。

      舉例:

      Title

      結(jié)果:

      說明:

      當(dāng)我們點擊month類型元素時,瀏覽器會彈出選擇框,以方便選擇哪個月份,如下圖所示。

      1.2.7、week

      當(dāng)type屬性取值為“week”時,我們可以使用瀏覽器自帶的工具來獲取“周數(shù)”。

      語法:

      value屬性用于設(shè)置初始值,格式必須如“2021-W04”。其中,“W”是“week”的縮寫。

      舉例:

      Title

      結(jié)果:

      說明:

      當(dāng)我們點擊week類型元素時,瀏覽器會彈出選擇框,以方便選擇第幾周,如下圖所示。

      2、新增其他表單元素

      前面介紹的都是input元素新增的類型,實際上HTML5還新增了3個表單元素:output、datalist、keygen。

      2.2、output

      在HTML5中,我們可以使用output元素來定義表單元素的輸出結(jié)果或計算結(jié)果。

      語法:

      舉例:

      Title

      結(jié)果:

      說明:

      output元素一般放在form元素內(nèi)部,并且配合其他表單元素(如文本框等)來使用。

      2.2、datalist

      在HTML5中,我們可以使用datalist元素來為文本框提供一個可選的列表。

      語法:

      舉例:

      Title

      輸入網(wǎng)址:

      結(jié)果:

      說明:

      如果想要把datalist綁定到某個文本框,需要設(shè)置該文本框的list屬性值等于datalist的id值。

      3、其他新增元素

      Html5除了新增結(jié)構(gòu)元素和表單元素之外,HTML5還增加了大量語義化元素,其中最重要的有以下6個,下面分別做介紹。

      3.1、address

      在HTML5中,我們可以使用更具有語義化的address元素來為“整個頁面”或者“某一個article元素”添加地址信息(電子郵件或真實地址)。當(dāng)address元素應(yīng)用于整個頁面時,它一般放于整個頁面的底部(footer元素內(nèi)部),表示該網(wǎng)站所有者的地址信息。一個頁面可以有多個article元素,比如有些頁面就有好幾篇文章。當(dāng)address元素應(yīng)用于article元素時,它一般放在article元素內(nèi)部的footer元素內(nèi),表示該篇文章所有者的地址信息。當(dāng)然,address元素也可以放于section元素內(nèi)。

      舉例1-應(yīng)用于整個頁面:

      Title

      如果你想與我們合作,可以通過電子郵件聯(lián)系我們。
      當(dāng)然你也可以通過下面地址聯(lián)系我們:
      吉林省長春市高新區(qū)XXXX公司。

      效果圖1:

      舉例2-應(yīng)用于article元素:

      效果圖2:

      3.2、time

      在HTML5中,我們可以使用更具有語義化的time元素來顯示頁面中的日期時間信息。

      語法:

      datetime屬性取值是一個時間,可以省略不寫。datetime屬性中的時間是提供給搜索引擎看的,而time標(biāo)簽內(nèi)的時間是提供給用戶看的,兩者內(nèi)容可以一樣也可以不一樣。time元素與datetime屬性的關(guān)系,有點類似于img元素與alt屬性的關(guān)系。

      舉例:

      Title

      方式1:
      方式2:
      方式3:
      方式4:

      結(jié)果:

      說明:

      在實際開發(fā)中,大多數(shù)情況下我們是不用datetime屬性的。用一句話總結(jié)就是:對于time元素的使用,我們不必過于拘泥,想要顯示一段有意義的日期時間,用括起來就可以了。

      3.3、progress

      在HTML5中,我們可以使用progress元素以進度條的形式來顯示某一個任務(wù)的完成度,如上傳文件、下載文件等。

      語法:

      max屬性表示最大值,value屬性表示當(dāng)前值。對于progress元素來說,它只有max屬性,而沒有min屬性。為什么呢?原因很簡單:任何進度條的最小值都是0,因此progress元素默認(rèn)最小值也是0。此外,max和value必須是0或正數(shù),并且max值必須大于等于value值。

      舉例1:

      Title

      結(jié)果1:

      說明1:

      “進度=value/max”,因此雖然兩個progress元素的max和value不一致,但是進度是相同的,都是80%。

      舉例2:

      Title

      O%

      結(jié)果2:

      說明2:

      在這個例子中,我們使用定時器setInterval()來實現(xiàn)進度條的不斷增加。當(dāng)我們點擊【顯示進度】按鈕后,進度條會不斷增加,效果如上圖所示。在實際開發(fā)中,progress元素一般結(jié)合上傳文件或下載文件操作來顯示進度,或者展示一個loading圖標(biāo),以便增強用戶體驗。

      3.4、meter

      在HTML5中,我們可以使用進度條的形式來顯示數(shù)據(jù)所占的比例。

      語法:

      舉例:

      Title

      結(jié)果:

      說明:

      meter元素跟progress元素非常相似,都是以進度條形式來顯示數(shù)據(jù)比例。不過,兩者在語義上有很大的區(qū)別:

      meter元素一般用于顯示靜態(tài)數(shù)據(jù)比例。所謂的靜態(tài)數(shù)據(jù),指的是很少改變的數(shù)據(jù),例如男生人數(shù)占全班人數(shù)的比例。

      progress元素一般用于顯示動態(tài)數(shù)據(jù)比例。所謂“動態(tài)數(shù)據(jù)”,指的是會不斷改變的數(shù)據(jù),例如下載文件的進度。

      3.5、figure和figcaption

      如下圖所示“圖片+圖注”效果,在實際開發(fā)中經(jīng)常可以見到。對于初學(xué)者來說,我們很可能使用如下代碼來實現(xiàn):

      Title

      Html5
      Html5

      但是這種實現(xiàn)方式語義并不好。在HTML5中,引入了figure和figcaption這兩個元素來增強圖片的語義化。

      語法:

      Title
      Html5
      Html5

      結(jié)果:

      說明:

      figure元素用于包含圖片和圖注,figcaption元素用于表示圖注文字。在實際開發(fā)中,對于“圖片+圖注”效果,我們都建議使用figure和figcaption這兩個元素來實現(xiàn),從而使得頁面的語義更加良好。

      3.6、fieldset和legend

      在HTML5中,我們還可以使用fieldset元素來給表單元素進行分組。其中,legend元素用于定義某一組表單的標(biāo)題。

      語法:

      表單組標(biāo)題 ......

      舉例:

      Title

      登錄

      結(jié)果:

      說明:

      使用fieldset和legend有兩個作用:增強表單的語義;定義fieldset元素的disabled屬性來禁用整個組中的表單元素。通過上例我們可以看到,使用fieldset和legend這兩個標(biāo)簽之后,表單形成了非常美觀的“書簽”效果。

      4、改良后的元素

      除了新增元素,HTML5還對已有的某些元素進行了改良,其中改良的元素有以下4種,下面分別做介紹。

      4.1、a

      HTML5為a元素新增了3個屬性,如下表所示。

      media和type這兩個屬性用得很少,我們只需要掌握download這一個屬性即可。

      語法:

      舉例:

      Title 下載圖片

      結(jié)果:

      說明:

      download屬性用于為文件取一個新的文件名。如果download屬性值省略,則表示使用舊的文件名。當(dāng)我們點擊“下載圖片”超鏈接后,瀏覽器就會下載該圖片,并且圖片名字換成新的文件名new-test.jpeg。如果我們改為下面這句代碼,也就是省略download屬性值,則圖片會使用舊的文件名test.jpeg。

      下載圖片

      4.2、ol

      HTML5為ol元素新增了一個reversed屬性,用于設(shè)置列表順序為降序顯示。

      語法:

      舉例:

      Title

      1. Html5
      2. Css3
      3. javaScript

      結(jié)果:

      說明:

      在實際開發(fā)中,reversed屬性用得很少,簡單了解一下即可。

      4.3、small

      語法:

      內(nèi)容

      舉例:

      Title Copyright ?2019-2021,All Rights Reserved

      結(jié)果:

      說明:

      對于上例所示效果,我們使用div、span等元素也可以實現(xiàn),不過small元素更具語義化。

      4.4、script

      HTML5為script元素新增了兩個屬性:defer和async。這兩個屬性的作用都是加快頁面的加載速度,兩者區(qū)別如下:

      defer屬性用于異步加載外部JavaScript文件,當(dāng)異步加載完成后,該外部JavaScript文件不會立即執(zhí)行,而是等到整個HTML文檔加載完成才會執(zhí)行。

      async屬性用于異步加載外部JavaScript文件,當(dāng)異步加載完成后,該外部JavaScript文件會立即執(zhí)行,即使整個HTML文檔還沒有加載完成。

      defer和async都是異步加載的,兩者區(qū)別在于,異步加載外部JavaScript文件完成后何時執(zhí)行。從上面也可以看出,defer屬性相對于async屬性來說,更符合大多數(shù)開發(fā)場景對腳本加載執(zhí)行的要求。

      舉例:

      Html代碼:

      Title

      async.js代碼:

      console.log("外部腳本");

      結(jié)果:

      說明:

      在正常情況下,輸出順序應(yīng)該是:“外部腳本→內(nèi)部腳本”。但是由于async屬性用于異步加載外部JavaScript文件,當(dāng)異步加載完成后,該外部JavaScript文件會立即執(zhí)行,即使整個HTML文檔還沒有加載完成,因此輸出順序為:“內(nèi)部腳本→外部腳本”。

      HTML HTML5

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:生產(chǎn)調(diào)度管理系統(tǒng)(生產(chǎn)調(diào)度管理系統(tǒng)創(chuàng)新點)
      下一篇:如何突出顯示Excel中修改/更新的單元格?
      相關(guān)文章
      亚洲阿v天堂在线2017免费| 亚洲AV无码一区二区三区人| 亚洲精品成人无限看| 亚洲av日韩专区在线观看| 色老板亚洲视频免在线观| 亚洲免费观看网站| 亚洲婷婷综合色高清在线| 亚洲的天堂av无码| 亚洲欧洲在线播放| 亚洲精品在线播放| 亚洲午夜久久久精品电影院| 亚洲女人18毛片水真多| 亚洲第一页在线视频| 亚洲电影唐人社一区二区| 亚洲网址在线观看| 亚洲无成人网77777| 亚洲成a人片在线观看播放| 亚洲国产日韩在线一区| 亚洲人成77777在线观看网| 亚洲最大av资源站无码av网址| 亚洲欧洲日韩极速播放| 亚洲日韩国产一区二区三区在线| 亚洲日韩AV无码一区二区三区人| 国产成人亚洲精品| 亚洲色成人四虎在线观看| 亚洲高清一区二区三区电影| 亚洲AV无码一区二区三区电影| 校园亚洲春色另类小说合集| 亚洲国产精品自产在线播放| 亚洲精品无码你懂的网站| 亚洲中文字幕无码爆乳AV| 亚洲Av无码专区国产乱码DVD| 亚洲人成网站影音先锋播放| 亚洲美女视频网站| 精品亚洲AV无码一区二区| 亚洲精品无码aⅴ中文字幕蜜桃| 成a人片亚洲日本久久| 亚洲人妻av伦理| 国产亚洲精品国产| 亚洲美女在线观看播放| 在线观看亚洲AV每日更新无码|