<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        純CSS3實現(xiàn)不錯的表單驗證效果

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 18:52:35
        文檔

        純CSS3實現(xiàn)不錯的表單驗證效果

        純CSS3實現(xiàn)不錯的表單驗證效果:這是補充HTML5基礎(chǔ)知識的系列內(nèi)容,其他為:一、HTML5-- 新的結(jié)構(gòu)元素二、HTML5-- figure、time、details、mark三、HTML5-- details活學(xué)活用四、HTML5-- 現(xiàn)存元素的變化五、HTML5 -- Web表單今天繼續(xù)學(xué)習(xí)Web表單相關(guān)的內(nèi)容,不過今天重點落實到實戰(zhàn)中
        推薦度:
        導(dǎo)讀純CSS3實現(xiàn)不錯的表單驗證效果:這是補充HTML5基礎(chǔ)知識的系列內(nèi)容,其他為:一、HTML5-- 新的結(jié)構(gòu)元素二、HTML5-- figure、time、details、mark三、HTML5-- details活學(xué)活用四、HTML5-- 現(xiàn)存元素的變化五、HTML5 -- Web表單今天繼續(xù)學(xué)習(xí)Web表單相關(guān)的內(nèi)容,不過今天重點落實到實戰(zhàn)中
        這是補充HTML5基礎(chǔ)知識的系列內(nèi)容,其他為:

      1. 一、HTML5-- 新的結(jié)構(gòu)元素

      2. 二、HTML5-- figure、time、details、mark

      3. 三、HTML5-- details活學(xué)活用

      4. 四、HTML5-- 現(xiàn)存元素的變化

      5. 五、HTML5 -- Web表單


      6. 今天繼續(xù)學(xué)習(xí)Web表單相關(guān)的內(nèi)容,不過今天重點落實到實戰(zhàn)中,利用HTML5表單與CSS3-UI實現(xiàn)一款不錯的表單效果。

        效果可看下面動圖:

        squire

        如效果演示,我們今天就通過簡單幾行CSS就可實現(xiàn)。

        預(yù)備知識

      7. 1、HTML5新增的表單類型:tel、email、url(上一篇有介紹)

      8. 2、HTML5表單基本驗證:required屬性

      9. 3、HTML5表單自定義驗證規(guī)則:pattern屬性

      10. 主要介紹內(nèi)容

      11. 1、CSS3用戶接口模塊中的偽類

      12. 2、自定義錯誤消息

      13. 正文

        既然是表單,我們得有基礎(chǔ)的表單HTML結(jié)構(gòu),下面是我創(chuàng)建的結(jié)構(gòu),三個表單都是必填字段,并且對于tel一欄我們設(shè)置了自定義的驗證規(guī)則:必須是11位數(shù)字。

        <form>
         <ol>
         <li>
         <label for="tel">Tel:</label>
         <input type="tel" required name="" pattern="\d{11}" id="tel">
         </li>
         <li>
         <label for="url">Website:</label>
         <input type="url" required name="" id="url">
         </li>
         <li>
         <label for="email">Email:</label>
         <input type="email" required name="" id="email">
         </li>
         <li>
         <input type="submit" name="" value="Send the form">
         </li>
         </ol></form>

        創(chuàng)建完成后的效果如下,感覺和我們想要的效果差別還很大。本是同根生啊,一樣的HTML,咋這個這么丑。

        屏幕快照-2017-01-17-22.26.29

        別急,下面我們慢慢給它穿衣服。

        下面使用簡單的規(guī)則,對該表單進(jìn)行美化:

        * {
         margin: 0;
         font: 13px tahoma, verdana, sans-serif;
         padding: 0;}ol {
         width: 400px;
         margin: 50px;}li {
         clear: both;
         list-style-type: none;
         margin: 0 0 10px;}li:nth-last-child(1) {
         text-align: center;}label {
         display: block;
         float: left;
         margin: 0 10px 0 0;
         padding: 5px;
         text-align: right;
         width: 100px;}input {
         border-radius: 5px;
         padding: 5px 5px 5px 30px;
         width: 155px;}input:focus {
         outline: none;}

        屏幕快照-2017-01-17-22.31.27

        現(xiàn)在效果已經(jīng)很不錯了,不過離我們的目標(biāo)還有一段距離,現(xiàn)在我們該考慮下,表單驗證的各個環(huán)節(jié),輸入框應(yīng)該長什么樣。上面的示例中有三種情況:

      14. 1、輸入框未激活時

      15. 2、輸入框激活(輸入不正確)

      16. 3、輸入框激活(輸入正確)

      17. 針對上面的三個情況,這里進(jìn)行了三個描述:

      18. 1、未激活時,必填表單顯示橙色提醒

      19. 2、激活時,輸入不正確,表單為深紅色提示

      20. 3、激活時,輸入正確,表單為綠色通過

      21. 與之相隨的是三個圖標(biāo)的變化。

        11

        當(dāng)我們定義把表單狀態(tài)定義完成以后其實我們心里已經(jīng)大致有個效果了,代碼是實現(xiàn)效果的工具,下面我們看下如何定義:

        首先是輸入框未激活,此時的輸入框狀態(tài)為invalid以及required

        input:invalid:required {
         background-image: url('nor.png');
         box-shadow: 0 0 5px #f0bb18;
         border: 2px solid #f0bb18;}

        其次是輸入框激活時,但還沒有輸入成功,此時輸入框狀態(tài)為focus以及invalid

        input:focus:invalid {
         background-image: url('warn.png');
         box-shadow: 0 0 5px #b01212;
         border: 2px solid #b01212;}

        最后是輸入框激活時,表單輸入成功,這時候輸入框狀態(tài)為valid

        input:valid {
         background-image: url('suc.png');
         border: 2px solid #7ab526;}

        最后,對提交按鈕進(jìn)行修飾:

        input[type="submit"] {
         background: #7ab526;
         border: none;
         box-shadow: 0 0 5px #7ab526;
         color: #fff;
         cursor: pointer;
         font-weight: bold;
         padding: 7px;
         width: 150px;}

        22

        怎么樣,還不錯吧。

        這里不先介紹所有的新CSS選項,更多的CSS選項需要繼續(xù)探索,我們僅僅使用了幾個就可以實現(xiàn)這么不錯的效果。

        我們使用的偽類如下:

      22. :valid —— 表單元素在內(nèi)容符合元素類型并驗證通過后,獲得該類

      23. :invalid —— 如果表單元素內(nèi)容有誤,它將獲得該類

      24. :required —— 任何擁有required屬性的表單元素應(yīng)用了此類

      25. 其他拓展

        1、不觸發(fā)瀏覽器驗證

        如果你不希望瀏覽器為表單驗證,使用novalidate屬性或formnovalidate屬性可以關(guān)閉瀏覽器驗證。

        其中novalidate是表單form所具有的屬性,提交表單時會忽略任何錯誤提示和空白域。

        <form novalidate>
         ...</form>

        formnovalidate是input元素的屬性,可以為單個表單元素設(shè)置該屬性。

        <form>
         ... <input type="submit" formnovalidate></form>

        上述表單同樣不會觸發(fā)驗證。

        2、自定義錯誤提示內(nèi)容

        在上面的例子中可以看到,瀏覽器會對我們的表單進(jìn)行驗證,在這個過程中會彈出錯誤消息。而隨著輸入的不同,這些驗證消息也是不一樣的。

        未標(biāo)題-1

        我們雖然不能更改提示框的樣式,但我們可以使用JavaScript的setCustomValidity()函數(shù)修改錯誤文字:

        <form>
         <input oninput="check()" type="tel" id="tel"></form><script>
         function check() {
         tel = document.querySelector('#tel');
         tel.setCustomValidity('請輸入正確的11位電話號碼');
         }</script>

        那么,現(xiàn)在當(dāng)我們輸入的時候,提示內(nèi)容就變成我們自定義的了:

        屏幕快照-2017-01-18-00.07.32

        現(xiàn)在還有一個問題,瀏覽器的提示是不一樣的,為空時的提示和錯誤的提示文案不一樣,這樣我們應(yīng)該怎么分開處理呢?

        這時候就需要validity來查看當(dāng)前的驗證狀態(tài):

        tel = document.querySelector('#tel');console.log( tel.validity )

        213

        如上圖所示,當(dāng)前驗證狀態(tài)為:customError,就是說用戶自定義的驗證失敗,我們可以根據(jù)這些狀態(tài)來動態(tài)的更新提示信息。如果最終驗證成功,其中的valid將變?yōu)閠rue。

        function check( el ) {
         var validity = el.validity;
         if ( validity.valueMissing ) {
         el.setCustomValidity('該字段為必填內(nèi)容');
         } else if ( validity.patternMismatch ) {
         el.setCustomValidity('輸入內(nèi)容不符合格式');
         } else {
         el.setCustomValidity('輸入有誤');
         }}

        上述只是演示,實際場景時刻替換自己的提示內(nèi)容。

        最后,可以通過validationMessage來獲取當(dāng)前的錯誤提示信息:

        console.log( el.validationMessage )// "請?zhí)顚懘俗侄巍?quot;

        總結(jié)

        在本次學(xué)習(xí)中做了一個簡單且最常見的Demo,另外介紹了一些關(guān)于表單驗證修飾的細(xì)節(jié),雖然這些東西五年前就已經(jīng)有了,但補充基礎(chǔ)知識什么時候都不算晚。

        今天學(xué)習(xí)了valid、invalid、required的使用,知識點雖小,但效果卻不錯,每次學(xué)習(xí)都有新發(fā)現(xiàn),慢慢積累。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        純CSS3實現(xiàn)不錯的表單驗證效果

        純CSS3實現(xiàn)不錯的表單驗證效果:這是補充HTML5基礎(chǔ)知識的系列內(nèi)容,其他為:一、HTML5-- 新的結(jié)構(gòu)元素二、HTML5-- figure、time、details、mark三、HTML5-- details活學(xué)活用四、HTML5-- 現(xiàn)存元素的變化五、HTML5 -- Web表單今天繼續(xù)學(xué)習(xí)Web表單相關(guān)的內(nèi)容,不過今天重點落實到實戰(zhàn)中
        推薦度:
        標(biāo)簽: 實現(xiàn) 效果 表單
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 99re这里有免费视频精品| 成人特级毛片69免费观看| 久久久久久久久久国产精品免费| 亚洲色欲久久久久综合网| 一个人看的www免费在线视频| 亚洲成年看片在线观看| 一级女性全黄生活片免费看| 亚洲人成网站色在线入口| 九九综合VA免费看| 亚洲熟妇av一区二区三区漫画| 4hu四虎免费影院www| 亚洲中文字幕无码一区二区三区| a色毛片免费视频| 亚洲精品中文字幕无码AV| 国产成在线观看免费视频| 亚洲色偷偷综合亚洲av78| 国产伦一区二区三区免费| 一区在线免费观看| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲国产国产综合一区首页| 2021精品国产品免费观看| 亚洲最大的成人网站| 亚洲人成人网站在线观看| 日韩在线永久免费播放| 亚洲国产中文在线二区三区免| 成年女人色毛片免费看| 精品国产_亚洲人成在线| 亚洲精品无码久久千人斩| 182tv免费视视频线路一二三| 亚洲综合在线一区二区三区| 亚洲成AⅤ人影院在线观看| 青柠影视在线观看免费高清| 亚洲日本香蕉视频观看视频| 国产在线观看免费完整版中文版| a在线免费观看视频| 97久久国产亚洲精品超碰热| 亚洲国产精品成人网址天堂| 免费不卡在线观看AV| 亚洲成a人片在线观看天堂无码| 亚洲三区在线观看无套内射| 无码少妇一区二区浪潮免费|