html新的语义化标签和表单控件

语义化标签
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="zh-cn">
 4     <meta charset="UTF-8">
 5     <title>新增的语义化标签</title>
 6 </head>
 7 <body>
 8     <header>页面头部或某个板块的头部</header>
 9     <footer>页面底部或某个板块的底部</footer>
10     <nav>导航</nav>
11 
12     <hgroup>
13         <h1>页面上的标题组合</h1>
14         <h1>页面上的标题组合</h1>
15     </hgroup>
16 
17     <section>页面上的一个区块或板块</section>
18 
19     <article>页面上一套结构完整且独立的内容(一篇文章、一条帖子)</article>
20     <aside>与article相关的附属信息</aside>
21 
22     <figure>用于对媒体元素进行组合</figure>
23     <figcaption>figure的子元素对figure的内容进行说明</figcaption>
24     <figure>
25         <figcaption>黄浦江上的的卢浦大桥</figcaption>
26         <img src="bridge.jpg" /><!-- 不用alt属性了 -->
27     </figure>
28 
29     <time datetime="2015-02-14">时间</time>
30 
31     <datalist>与input配合表示input可能出现的值</datalist>
32     <input type="text" list="valList"/>
33     <datalist id="valList">
34         <option value="js">js</option>
35         <option value="cs">cs</option>
36         <option value="hm">hm</option>
37     </datalist>
38 
39     <details>详细信息配合summary使用</details>
40     <details open="open">
41         <summary>html</summary>
42         <p>超文本标记语言</p>
43     </details>
44 
45     <dialog>定义一段对话</dialog>
46     <dialog open="open">
47         <dt>老师</dt>
48         <dd>1+1=?</dd>
49         <dt>学生</dt>
50         <dd>2</dd>
51         <dt>老师</dt>
52         <dd>正确</dd>
53     </dialog>
54 
55     <address>定义文章或页面作者的详细联系地址</address>
56     <mark>标记</mark>
57 
58     <keygen />
59 
60     <progress>进度条</progress>
61     <progress max="100" value="30"></progress>
62     <progress max="100" value="30">
63         <span>向下兼容30</span>%
64     </progress>
65 </body>
66 </html>
兼容低版本的IE的方法:
  通过document.createElement()并修改display为相应的值就行。
  在head中导入html5shiv.js文件。
表单控件
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="zh-cn">
 4     <meta charset="UTF-8">
 5     <title>新增表单元素和属性</title>
 6 </head>
 7 <body>
 8     <form action="#">
 9         <p><input type="email" placeholder="邮箱"/></p>
10         <p><input type="tel" placeholder="电话"/>键盘切换</p>
11         <p><input type="url" placeholder="网址"/></p>
12 
13         <p><input type="search" placeholder="搜索"/>输入内容后表单后面会出现小x,IE中所有的表单输入内容后都会出现小x</p>
14 
15         <p><input type="range" step="1" min="0" max="10" value="2"/></p>
16 
17         <p><input type="number"/>数字调节</p>
18         <p><input type="color"/>颜色选择器</p>
19 
20         <p><input type="datetime"/>有日期选择器</p>
21         <p><input type="datetime-local"/>有日期选择器</p>
22         <p><input type="time"/>选择小时分钟</p>
23         <p><input type="date"/>有日期选择器</p>
24         <p><input type="week"/>有日期选择器</p>
25         <p><input type="month"/>有日期选择器</p>
26 
27         <p>属性:</p>
28         <p><input type="text" placeholder="提示信息"/>表单提示信息</p>
29         <p><input type="text" autocomplete="true" name="age"/>是否保存用户输入值来进行自动提示</p>
30         <p><input type="text" autofocus/>自动获得焦点</p>
31         <p><input type="text" list="datalist的id"/></p>
32         <p><input type="text" required/>选项不能为空</p>
33         <p><input type="text" pattern="正则"/>正则验证</p>
34 
35         <p><input type="submit" value="保存到草稿箱" formaction="cao.php"/></p>
36         <p><input type="submit" value="保存" formaction="save.php"/></p>
37 
38         <p><input type="submit" value="提交"/></p>
39     </form>
40 </body>
41 </html>
表单验证
validity对象:
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="zh-cn">
 4     <meta charset="UTF-8">
 5     <title>表单验证</title>
 6 </head>
 7 <body>
 8     <form action="#">
 9         <input type="text" required id="text"/>
10         <input type="submit" value="提交"/>
11     </form>
12 </body>
13 <script>
14     var oText = document.getElementById('text');
15 
16     // 添加自定义验证
17     oText.onInput = function(){
18         if(this.value == 'hello'){
19             this.setCustomValidity('请不要输入hello');
20         }else{
21             this.setCustomValidity(''); // 验证通过一定要清空
22         }
23     };
24 
25     oText.addEventListener('invalid', function(e){
26         console.log(this.validity);
27         console.log(this.validity.valid); // 验证结果 下面的都返回false时为true
28         console.log(this.validity.valueMissing); // 验证required 为空为true
29         console.log(this.validity.typeMismatch); // 验证type的匹配 不匹配为true
30         console.log(this.validity.patternMismatch); // 验证正则 不匹配返回true
31         console.log(this.validity.tooLong); // 验证maxlength 超过返回true
32         console.log(this.validity.rangeUnderflow); // 验证range的最小值 低于最小值返回true
33         console.log(this.validity.rangeOverflow); // 验证range的最大值 超过最大值返回true
34         console.log(this.validity.stepMismatch); // 验证range的步长 不满足步长返回true
35         console.log(this.validity.customError); // 验证自定义验证 不符合自定义验证返回true
36 
37         e.preventDefault();
38     }, false);
39 </script>
40 </html>
 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="zh-cn">
 4     <meta charset="UTF-8">
 5     <title>表单验证</title>
 6 </head>
 7 <body>
 8     <form action="#">
 9         <input type="text" required id="text"/>
10         <input type="submit" formaction="sub.php" value="提交"/>
11         <input type="submit" formaction="cao.php" formnovalidate value="草稿箱"/>formnovalidate关闭验证
12     </form>
13 </body>
14 </html>
原文地址:https://www.cnblogs.com/tyxloveyfq/p/4334012.html