目录

  • 一、HTML5新增属性

    • 1.1、contextmenu
    • 1.2、contentEditable
    • 1.3、hidden
    • 1.4、draggable
    • 1.5、data-*
    • 1.6、placeholder占位属性
    • 1.7、required必填属性
    • 1.8、pattern正则属性
    • 1.9、autofocus自动聚焦属性
    • 1.10、autocomplete自动完成属性
    • 1.11、novalidate不验证属性
    • 1.12、multiple多选属性
  • 二、HTML5表单新功能解析
    • 2.1、表单结构更自由
    • 2.2、表单重写属性
    • 2.3、邮箱与URL输入
    • 2.4、日期时间相关输入类型
    • 2.5、数字输入类型
    • 2.6、range滑块类型
    • 2.7、搜索输入类型
    • 2.8、电话输入类型
    • 2.9、color输入类型
  • 三、特殊的超链接
    • 3.1、短信
    • 3.2、电话
    • 3.3、邮件
    • 3.4、QQ客户
    • 3.5、地图
    • 3.6、分享
  • 四、示例代码下载

一、HTML5新增属性

1.1、contextmenu

contextmenu的作用是指定右键菜单。

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><div id="div1" style="height:900px; background: lightgreen;" contextmenu="menuShare"></div><menu id="menuShare" type="context"><menuitem label="分享到QQ空间" οnclick="alert('QQ');"></menuitem><menuitem label="分享到朋友圈" οnclick="alert('朋友圈');"></menuitem><menuitem label="分享到微博" οnclick="alert('微博');"></menuitem></menu></body>
</html>

运行效果:

contextmenu 在Html5中,每个元素新增了一个属性:contextmenu, contextmenu 是上下文菜单,即鼠标右击元素会出现一个菜单。
menu 要实现鼠标右击元素会出现一个菜单,还必须了解HTML5里新增的另一个元素:menu 顾名思义menu是定义菜单的, menu 元素属性: type :菜单类型属。 有三个值 1)context:上下文; 2)toolbar:工具栏;3)list:列表
<menuitem>
<menu> </menu>内部可以嵌入一个一个菜单项,即<menuitem></menuitem>。
menuitem 属性:
label:菜单项显示的名称
icon:在菜单项左侧显示的图标
onclick:点击菜单项触发的事件

1.2、contentEditable

规定是否可编辑元素的内容
属性值:
true -----可以编辑元素的内容
false -----无法编辑元素的内容
inherit -----继承父元素的contenteditable属性
当为空字符串时,效果和true一致。
当一个元素的contenteditable状态为true(contenteditable属性为空字符串,或为true,或为inherit且其父元素状态为true)时,意味着该元素是可编辑的。否则,该元素不可编辑。

document.body.contentEditable=true; 可以修改已发布网站

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>contentEditable属性</title></head><body><h2>contentEditable属性</h2><div contenteditable="true">Hello contentEditable</div></body>
</html>

1.3、hidden

hidden属性用于隐藏该元素。一旦使用了此属性,则该元素就不会在浏览器中被显示
2个布尔值
true 规定元素是可见。
false 规定元素是不可见。

        <div hidden="hidden">Hello Hidden</div>

为了兼容一些不支持该属性的浏览器(IE8),可以在CSS中加如下样式:

*[hidden]{
   display: none;
}

var div1=document.querySelector("body #div1");
div1.innerHTML+=" +++";

1.4、draggable

规定元素是否可拖拽
3个枚举值
true 规定元素是可拖动的。
false 规定元素是不可拖动的。
auto 使用浏览器的默认特性。

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><script src="Scripts/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script>    <title></title><style>#div1,#div3 {height: 200px;width: 200px;border: 1px solid #00f;margin-bottom: 10px;}#div2 {height: 100px;width: 100px;background: yellow;}</style><script>var div1, div2, div3, msg;window.onload = function() {div1 = document.getElementById("div1");div2 = document.getElementById("div2");div3 = document.getElementById("div3");msg = document.getElementById("msg");div2.οndragstart=function(){msg.innerHTML+="div2开始拖动了<br/>";}div2.οndrag=function(){msg.innerHTML+="拖动中<br/>";}div2.οndragend=function(){msg.innerHTML+="拖动结束<br/>";}div1.ondragover = function(e) {e.preventDefault();}div1.ondrop = function(e) {div1.appendChild(div2);}div3.ondragover = function(e) {e.preventDefault();}div3.ondrop = function(e) {div3.appendChild(div2);}$("#div1").data("name","电池");alert($("#div1").data("name"));div1.setAttribute("data-order-price",998.7);alert(div1.getAttribute("data-order-price"));}</script></head><body><div id="div1" data-order-price="98.5" data-name="充电宝"></div><div id="div3"></div><div id="div2" draggable="true"></div><h3 id="msg"></h3></body></html>

运行结果:

1.5、data-*

data-*属性能让用户自定义属性的方式来存储数据
<span data-order-amount=100></span>
取值:
getAttribute('data-order-amount')
dataset.orderAmount
jQuery中的data()方法同样可以访问

使用jQuery与javascript添加与获取data属性示例:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>data-*</title><script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script></head><body><h2>data-*</h2><div id="div1" data-student-name="Tom" data-stu='{"a":1,"b":2}'></div><button οnclick="addData()">添加数据</button><button οnclick="getData()">获取数据</button><script type="text/javascript">var div1=document.getElementById("div1");function addData(){//给div1添加属性data-student-name,值为rosediv1.setAttribute("data-student-name","Rose");$("#div1").data("stu-mark","99分");}function getData(){//原生JavaScript//alert(div1.getAttribute("data-student-name"));//jQueryalert($("#div1").data("student-name"));alert($("#div1").data("stu").a);alert($("#div1").data("stu-mark"));}var x="{a:1}";alert(eval("("+x+")").a);</script></body>
</html>

运行效果:

1.6、placeholder占位属性

这是一个很实用的属性,免去了用JS去实现点击清除表单初始值.浏览器支持也还不错,除了Firefox,其他标准浏览器都能很好的支持
<input placeholder="请输入用户名">

            <p><label>邮箱:</label><input type="email" name="mail" id="mail" value="" placeholder="请输入邮箱"/></p>

1.7、required必填属性

约束表单元在提交前必须输入值。

            <p><label>博客:</label><input type="url" name="blog" id="blog" value="" required="required"/></p>

1.8、pattern正则属性

约束用户输入的值必须与正则表达式匹配。

            <p><label>帐号:</label><input type="text" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />请输入a-zA-Z0-9且长度6-16位的字符</p>

1.9、autofocus自动聚焦属性

            <p><label>博客:</label><input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/></p>

让指定的表单元素获得焦点。

1.10、autocomplete自动完成属性

当表单元素设置了自动完成功能后,会记录用户输入过的内容,双击表单元素会显示历史输入。

<input type="text" name="username" autocomplete="on/off" />

该属性默认是打开的。

1.11、novalidate不验证属性

novalidate 属性规定在提交表单时不应该验证 form 或 input 域。
<form action="demo_form.asp" method="get" novalidate="true">

<button formnovalidate="formnovalidate" >提交</button>

1.12、multiple多选属性

multiple 属性规定输入域中可选择多个内容,如:email 和 file

<input type="file" multiple="multiple” />

            <p><label>相片:</label><input type="file" multiple="multiple"/></p>

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>HTML5新的表单元素</title></head><body><h2>HTML5新的表单元素</h2><form><p><label>姓名:</label><input type="text" required="required"/></p><p><label>相片:</label><input type="file" multiple="multiple"/></p><p><label>帐号:</label><input type="text" name="username" autocomplete="on" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />请输入a-zA-Z0-9且长度6-16位的字符</p><p><label>邮箱:</label><input type="email" name="mail" id="mail" value="" placeholder="请输入邮箱"/></p><p><label>博客:</label><input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/></p><p><label>生日:</label><input type="date"></p><p><label>身高:</label><input type="number" max="226" min="80" step="10" value="170" /></p><p><label>肤色:</label><input type="color" οnchange="document.bgColor=this.value" /></p><p><label>体重:</label><input type="range" max="500" min="30" step="5" value="65" οnchange="showValue(this.value)"/><span id="rangeValue"></span></p><button formnovalidate="formnovalidate">提交</button><script type="text/javascript">function showValue(val){document.getElementById("rangeValue").innerHTML=val;}</script></form></body></html> 

二、HTML5表单新功能解析

HTML表单一直都是Web的核心技术之一,有了它我们才能在Web上进行各种各样的应用,才能和服务器进行方便快捷的交互。HTML5 Forms新增了许多新控件及其API,方便我们做更复杂的应用,而不用借助其它前端脚本语言(如:javascript),极大的解放了我们的双手。

2.1、表单结构更自由

在HTML5中表单完全可以放在页面任何位置,然后通过新增的form属性指向元素所属表单的id值,即可关联起来。

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body>姓名:<input type="text" name="realname" form="form1"/><form id="form1" method="get"><button>提交</button></form></body>
</html>

运行结果:

2.2、表单重写属性

表单重写属性(form override attributes)允许您重写 form 元素的某些属性设定。
表单重写属性有:
formaction - 重写表单的 action 属性
formenctype - 重写表单的 enctype 属性
formmethod - 重写表单的 method 属性
formnovalidate - 重写表单的 novalidate 属性
formtarget - 重写表单的 target 属性

示例:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body>姓名:<input type="text" name="realname" form="form1"/><form id="form1" method="get"><button formmethod="get"  formaction="d01.html">get提交给d01.html</button><button formmethod="post" formaction="d02.html">post提交d02.html</button></form></body>
</html>

运行结果:

2.3、邮箱与URL输入

email输入类型外表与文本框一样,但在移动端运行时将切换对应的输入键盘,约束格式

格式:<input type="email" />

url输入类型
说明:上面代码展示的文本域要求输入格式正确的URL地址,Opera中会自动在开始处添加http://.
格式:<input type= "url">

示例代码:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>HTML5新的表单元素</title></head><body><h2>HTML5新的表单元素</h2><form><p><label>邮箱:</label><input type="email" name="mail" id="mail" value="" /></p><p><label>博客:</label><input type="url" name="blog" id="blog" value="" /></p><button>提交</button></form></body>
</html>

2.4、日期时间相关输入类型

提供日历控件,但目前只有Opera/Chrome新版本支持,且展示效果也不一样..
<input type=date>
<inputtype=time>
<input type=month>
<input type=week>
<input type=datetime>
<input type=datetime-local/>

            <p><label>生日:</label><input type="date"></p>

2.5、数字输入类型

实现一个数字输入框,输入不了非数字字符。

<input type="number" max=10 min=0 step=1 value=5/>
max number 规定允许的最大值
min number 规定允许的最小值
step number 规定合法的数字间隔(如果 step="3",则合法的数是 -3,0,3,6 等)
value number 规定默认值

            <p><label>身高:</label><input type="number" max="226" min="80" step="10" value="168" /></p>

必须输入数字,且数字的大小要介于指定的范围。

2.6、range滑块类型

特定值的范围的数值,以滑动条显示
<input type="range" max=10 min=0 step=1 value=5/>
 max number 规定允许的最大值
min number 规定允许的最小值
step number 规定合法的数字间隔
(如果 step="3",则合法的数是 -3,0,3,6 等)
value number 规定默认值

            <p><label>体重:</label><input type="range" max="500" min="30" step="5" value="65" οnchange="showValue(this.value)"/><span id="rangeValue"></span></p><button>提交</button><script type="text/javascript">function showValue(val){document.getElementById("rangeValue").innerHTML=val;}</script>

默认没有显示值,需要使用javascript手动显示。

2.7、搜索输入类型

此类型表示输入的将是一个搜索关键字,可显示一个搜索小图标。
<input type=search>

在Chrome中右边会出现有一个清除符号。

2.8、电话输入类型

此类型要求输入一个电话号码,但实际上它并没有特殊的验证,与text类型没什么区别.
<input type=tel>
在移动端会弹出输入数字的键盘。

2.9、color输入类型

此类型表单,可让用户通过颜色选择器选择一个颜色值,并反馈到该控件的value值中
<input type=color>

            <p><label>肤色:</label><input type="color" οnchange="document.bgColor=this.value" /></p>

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>HTML5新的表单元素</title></head><body><h2>HTML5新的表单元素</h2><form><p><label>姓名:</label><input type="text" required="required"/></p><p><label>相片:</label><input type="file" multiple="multiple"/></p><p><label>帐号:</label><input type="text" name="username" autocomplete="on" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />请输入a-zA-Z0-9且长度6-16位的字符</p><p><label>邮箱:</label><input type="email" name="mail" id="mail" value="" placeholder="请输入邮箱"/></p><p><label>博客:</label><input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/></p><p><label>生日:</label><input type="date"></p><p><label>身高:</label><input type="number" max="226" min="80" step="10" value="170" /></p><p><label>肤色:</label><input type="color" οnchange="document.bgColor=this.value" /></p><p><label>体重:</label><input type="range" max="500" min="30" step="5" value="65" οnchange="showValue(this.value)"/><span id="rangeValue"></span></p><button formnovalidate="formnovalidate">提交</button><script type="text/javascript">function showValue(val){document.getElementById("rangeValue").innerHTML=val;}</script></form></body></html>

三、特殊的超链接

3.1、短信

<a href='sms:15919218899'>短信</a>

在手机端,当点击短信时将实现发送短信功能,进入发送短信界面,自动填写好手机号码

3.2、电话

<a href="tel:15919218899">电话</a>

在手机端,当点击电话时将实现拨打电话功能,进入拨打电话界面,自动填写好手机号码

3.3、邮件

<a href="mailto:99519876@qq.com">邮件</a>

点击邮件时将启动客户端发送邮件的软件如outlook,foxmail等

3.4、QQ客户

<a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=99518888&site=qq&menu=yes" alt="点击这里给我发消息" title="点击这里给我发消息">QQ客服</a>

3.5、地图

<a href="http://map.baidu.com/mobile/webapp/search/search/qt=s&wd=%E7%8F%A0%E6%B5%B7%E6%B8%AF&c=348&searchFlag=bigBox&version=5&exptype=dep/vt=map/?fromhash=1">地图</a>

在手机端可以直接进入baidu的地图

3.6、分享

自定义设置:shang.qq.com

示例代码:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title></head><body><a href='sms:15919218899'>短信</a><br /><a href="tel:15919218899">电话</a><br /><a href="mailto:99519876@qq.com">邮件</a><br/><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=99518888&site=qq&menu=yes" alt="点击这里给我发消息" title="点击这里给我发消息">QQ客服</a><br /><a href="http://map.baidu.com/mobile/webapp/search/search/qt=s&wd=%E7%8F%A0%E6%B5%B7%E6%B8%AF&c=348&searchFlag=bigBox&version=5&exptype=dep/vt=map/?fromhash=1">地图</a><br /><a href="http://map.baidu.com/mobile/webapp/index/index#place/detail/qt=ninf&wd=%E5%8D%97%E6%96%B9IT%E5%AD%A6%E9%99%A2&c=140&searchFlag=bigBox&version=5&exptype=dep&src_from=webapp_all_bigbox&sug_forward=&src=0&uid=717b5c621070ee955d0d0270&industry=education&qid=3767972802907606580/showall=1&pos=0&da_ref=listclk&da_qrtp=11&da_adtp=&da_log=sampid%3A3_eno%3A206_adnum%3A0_sid%3A9712246999610050_from%3Awebappmap_exptype%3Aurl_query%3A%E5%8D%97%E6%96%B9IT%E5%AD%A6%E9%99%A2_adids%3A_killnum%3A0_userids%3A&da_adquery=%E5%8D%97%E6%96%B9it%E5%AD%A6%E9%99%A2&da_adtitle=%E5%8D%97%E6%96%B9IT%E5%AD%A6%E9%99%A2&da_adindus=%E6%95%99%E8%82%B2%E5%9F%B9%E8%AE%AD%3B%E9%AB%98%E7%AD%89%E9%99%A2%E6%A0%A1&detail_from=list%26pos%3D0%26ad_page_logs%3D%26semStatType%3Dlist&vt=map">IT学院</a><br /><div class="bdsharebuttonbox"><a href="#" class="bds_more" data-cmd="more"></a><a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a><a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"></a><a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"></a></div>
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"1","bdSize":"32"},"share":{},"image":{"viewList":["qzone","tsina","tqq","renren","weixin"],"viewText":"分享到:","viewSize":"16"},"selectShare":{"bdContainerClass":null,"bdSelectMiniList":["qzone","tsina","tqq","renren","weixin"]}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script></body></html>

运行效果:

四、示例代码下载

github:https://github.com/zhangguo5/HTML5_3_1

参照:http://www.cnblogs.com/best

转载于:https://www.cnblogs.com/HUANGRONG888/p/6135688.html

HTML5 学习笔记(二)——HTML5新增属性与表单元素相关推荐

  1. HTML5 学习总结(二)——HTML5新增属性与表单元素

    一.HTML5新增属性 1.1.contextmenu contextmenu的作用是指定右键菜单. <!DOCTYPE html> <html><head>< ...

  2. C1认证学习十八、十九(表单元素、转义字符)

    C1认证学习十八.十九(表单元素.语义化标签) 十八 任务背景 HTML的表单用于收集用户的输入,表单元素是指的不同类型的input元素,复选框,单选按钮,提交按钮等等. 任务目标 掌握表单标签以及其 ...

  3. 只有设置了 name 属性的表单元素才能在提交表单时传递它们的值

    $(function () {var wait = $("<img src=\"\" alt=\"正在上传\"/>");$(&q ...

  4. html5新增了哪些表单元素,HTML5新增表单元素

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? HTML5新增表单元素主要有 input标签 其type类型主要有有以下几种:type="tel"用 ...

  5. 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单

    2017-2-15从0开始前端学习笔记-图片-表格-表单 标签 图片 图片<img src="#" alt="文本说明 不能加载图片时显示" title= ...

  6. Web后端学习笔记 Flask(8) WTForms 表单验证,文件上传

    Flask-WTF是简化了WTForms操作的一个第三方库.WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板.同时还包含一些其他的功能.例如CSRF保护,文件上传等功能,安装fl ...

  7. h5新增标签和表单元素

    h5新增表单元素 1. video 2. audio标签 3.datalist标签 4. progress标签 5. 表单新增元素 1. video 作用:播放视频 video常用标签属性: src: ...

  8. 表格、表格CSS属性及HTML属性、表单元素、type类型、内联块的对齐方式

    表格 table thead tbody tfoot table>tr>td(th加粗居中显示) css属性 border-sapcing:数值px; 表格边框设置为细线 borde-co ...

  9. HTML5学习笔记简明版(10):过时的元素和属性

    被遗弃的元素(Element) 这个小节里列出的元素在HTML5里将不再使用,现有文档升级到 HTML5的话能够使用一些替代方案.比如parser section 能够处理isindex 元素的功能. ...

  10. HTML5学习笔记简明版(10):废弃的元素和属性

    废弃的元素(Element) 这个小节里列出的元素在HTML5里将不再使用.现有文档升级到 HTML5的话能够使用一些替代方案.比如parser section 能够处理isindex 元素的功能. ...

最新文章

  1. 全自动驾驶“生死时速”,特斯拉收购计算机视觉创企DeepScale
  2. 数字化转型战略中不可忽视“软因素”
  3. LeetCode Valid Number(判断字符串是否是合法的数字表示 )
  4. python基本语法积累~
  5. SpringMVC的表单标签库
  6. OpenSAP网址收藏
  7. linux26内核,Linux26内核对象机制研究.pdf
  8. spring mvc 总体概况
  9. 拓端tecdat|R语言机器学习实战之多项式回归
  10. 高通的快充协议_高通发布QC5.0快充技术最高100W+功率!手机厂商私有协议更好...
  11. electron 自定义标题栏_CAXA电子图板2015版自定义标题栏
  12. android 刷新界面布局,Android输入法弹出刷新界面布局导致性卡顿
  13. 洛谷P2440 木材加工 —二分答案
  14. vscode运行C程序
  15. python一个类调用另一个类的方法_python – 从另一个类调用类方法
  16. chrome浏览器安装vue插件
  17. 树莓派 --- 人脸口罩识别智能监控
  18. 《袁老师访谈录》第十一期|宗福季教授/香港科大(广州)信息枢纽署理院长【问诊未来·院长系列:拥抱数字化转型】...
  19. 如何开始用Python编程
  20. 企业即时通讯软件相比传统通讯带来的好处

热门文章

  1. 按键扫描——74HC164驱动(二)
  2. InnoDB 行格式
  3. 针对业务系统的开发,如何做需求分析和设计1
  4. spark 读取elasticsearch数据
  5. Facebook 在西雅图和匹兹堡建立新AI实验室,业界担心大学人才争夺战烽火再起...
  6. RecyclerView 下拉刷新和加载更多
  7. Go语言中Path包用法
  8. arm9 adc及触摸屏
  9. Redisbook学习笔记(1)字典(2)
  10. PO、VO、BO、DTO、POJO、DAO之间的关系