html5有新属性吗
htML5有新属性,例contextmenu、contentEdITable、hidden、Draggable、“data-*”、placeholder、required、pattern、autofocus、autocomplete等等。
本教程操作环境:windows7系统、HTML5版、Dell G3电脑。
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空间" onclick="alert('QQ'); "> /menuitem> menuitem label="分享到朋友圈" onclick="alert('朋友圈'); "> /menuitem> menuitem label="分享到微博" onclick="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 p1=document.querySelector("body #p1"); p1.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> #p1, #P3 { height: 200px; width: 200px; border: 1px solid #00f; margin-bottom: 10px; } #p2 { height: 100px; width: 100px; background: yellow; } /style> script> var p1, p2, p3, msg; window.onload = function() { p1 = document.getElementById("p1"); p2 = document.getElementById("p2"); p3 = document.getElementById("p3"); msg = document.getElementById("msg"); p2.ondragstart=function(){ msg.innerHTML+="p2开始拖动了br/> "; } p2.ondrag=function(){ msg.innerHTML+="拖动中br/> "; } p2.ondragend=function(){ msg.innerHTML+="拖动结束br/> "; } p1.ondragover = function(e) { e.preventDefault(); } p1.ondrop = function(e) { p1.appendChild(p2); } p3.ondragover = function(e) { e.PReventDefault(); } p3.ondrop = function(e) { p3.appendChild(p2); } $("#p1").data("name","电池"); alert($("#p1").data("name")); p1.setattribute("data-order-price",998.7); alert(p1.getAttribute("data-order-price")); } /script> /head> body> p id="p1" data-order-price="98.5" data-name="充电宝"> /p> p id="p3"> /p> p id="p2" draggable="true"> /p> h3 id="msg"> /h3> /body> /html>
运行结果:
!DOCTYPE html> html lang="en"> head> meta charset="UTF-8"> meta name="viewport" content="width=device-width, initial-scale=1.0"> title> Document/title> /head> body> p style="height: 300px; background: lightgoldenrodyellow; " ondrop="ondropEvent(event)" ondragover="ondragoverEvent(event)"> /p> img src="img/x.png" width="200" draggable="true" ondragstart="ondragstartEvent(event)"/> img src="img/tv.png" width="200" draggable="true" ondragstart="ondragstartEvent(event)"/> script> var target; function ondragstartEvent(e){ target=e.target; //记住当前被拖动的对象 console.LOG(e.target); } function ondropEvent(e){ e.preventDefault(); e.target.appendChild(target); } function ondragoverEvent(e){ e.preventDefault(); } /script> /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> p id="p1" data-student-name="Tom" data-stu='{ "a":1,"b":2} '> /p> button onclick="addData()"> 添加数据/button> button onclick="getData()"> 获取数据/button> script type="text/javascript"> var p1=document.getElementById("p1"); function addData() { //给p1添加属性data-student-name,值为rose p1.setAttribute("data-student-name","Rose"); $("#p1").data("stu-mark","99分"); } function getData() { //原生JavaScript //alert(p1.getAttribute("data-student-name")); //jQuery alert($("#p1").data("student-name")); alert($("#p1").data("stu").a); alert($("#p1").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" onchange="document.bgColor=this.value" /> /p> p> label> 体重:/label> input type="range" max="500" min="30" step="5" value="65" onchange="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>
推荐教程:html视频教程
以上就是html5有新属性吗的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: html5有新属性吗
本文地址: https://pptw.com/jishu/591312.html