一、HTML5 特殊符号
:空格
>:大于号 >
&It :小于号 <
" :引号”
©:”版权符号 @
二、HTML 新增属性
1、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>
View Code
结果:
2、hidden
hidden属性用于隐藏该元素。一旦使用了此属性,则该元素就不会在浏览器中被显示
2个布尔值
true 规定元素是可见。
false 规定元素是不可见。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>隐藏元素(hidden)</title>
<style type="text/css">
#D{
width: 100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<div id="D" style="visibility: collapse;">
</div>
<!--隐藏元素-->
<!--方法一:-->
<!--隐藏:display:none-->
<span style="display: none;">span1</span>
<!--显示:display: initial-->
<span style="display: initial;">span2</span>
<!--方法二-->
<p>
<!--隐藏:visibility: hidden-->
<span style="visibility: hidden;">span3</span>
<!--显示:visibility: visible-->
<span style="visibility: visible;">span4</span>
</p>
<!--方法三-->
<p>
<span hidden="hidden">span5</span>
<span>span6</span>
</p>
</body>
</html>
View Code
结果:
为了兼容一些不支持该属性的浏览器(IE8),可以在CSS中加如下样式:
*[hidden]{
display: none;
}var div1=document.querySelector("body #div1");
div1.innerHTML+=" +++";
3、draggable
规定元素是否可拖拽
3个枚举值
true 规定元素是可拖动的。
false 规定元素是不可拖动的。
auto 使用浏览器的默认特性。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>拖拽元素(draggable)</title>
<style>
.box {
width: 200px;
height: 200px;
display: inline-block;
font-size: 0;
margin: 0;
padding: 0;
}
#div2 {
width: 400px;
height: 400px;
background: lightseagreen;
font-size: 0;
}
</style>
</head>
<body>
<div class="box" draggable="true" style="background: lightcoral"></div>
<div class="box" draggable="true" style="background: orangered;"></div>
<div class="box" draggable="true" style="background: #4169E1;"></div>
<div class="box" draggable="true" style="background: limegreen;"></div>
<div id="div2"></div>
<script src="../js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var boxes = document.querySelectorAll(".box");
var div2 = document.getElementById("div2");
var temp;
for(var i = 0; i < boxes.length; i++) {
var box = boxes[i];
box.ondragstart = function(e) {
temp = e.srcElement;
console.log("ondragstart开始拖动");
}
box.ondrag = function(e) {
console.log("ondrag拖动中");
}
box.ondragend = function(e) {
console.log("ondragend拖动结束");
}
}
div2.ondragover = function(e) {
e.preventDefault();
}
div2.ondrop = function(e) {
div2.appendChild(temp.cloneNode(true));
}
</script>
</body>
</html>
View Code
结果:
4、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="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
</head>
<body>
<div id="div1" data-stu-age="100" data-student='{"name":"tome","age":19}'>学生:Tom</div>
<button onclick="addData()">添加数据</button>
<button onclick="getData()">获取数据</button>
<script type="text/javascript">
var div1=document.getElementById("div1");
function addData() {
div1.setAttribute("data-stu-age",101); //方法1
div1.dataset.stuAge=102; //方法2
$("#div1").data("stuAge",103); //方法3
}
function getData() {
console.log(div1.getAttribute("data-stu-age")); //方法1
console.log(div1.dataset); //方法2
console.log(JSON.parse(div1.dataset.student).age);
console.log(div1.dataset.stuAge);
console.log($("#div1").data("stuAge")); //方法3
}
</script>
</body>
</html>
View Code
结果:
5、placeholder占位属性
这是一个很实用的属性,免去了用JS去实现点击清除表单初始值.浏览器支持也还不错,除了Firefox,其他标准浏览器都能很好的支持
这是一个很实用的属性,免去了用JS去实现点击清除表单初始值.浏览器支持也还不错,除了Firefox,其他标准浏览器都能很好的支持
<input placeholder="请输入用户名">
<p>
<label>邮箱:</label>
<input type="email" name="mail" id="mail" value="" placeholder="请输入邮箱"/>
</p>
6、required必填属性
约束表单元在提交前必须输入值。
<p>
<label>博客:</label>
<input type="url" name="blog" id="blog" value="" required="required"/>
</p>
7、pattern正则属性
约束用户输入的值必须与正则表达式匹配。
<p>
<label>帐号:</label>
<input type="text" required="required" pattern="^[0-9a-zA-Z]{6,16}$" />请输入a-zA-Z0-9且长度6-16位的字符
</p>
8、autofocus自动聚焦属性
<p>
<label>博客:</label>
<input type="url" name="blog" id="blog" value="" required="required" autofocus="autofocus"/>
</p>
让指定的表单元素获得焦点。
9、autocomplete自动补全属性
当表单元素设置了自动完成功能后,会记录用户输入过的内容,双击表单元素会显示历史输入。
<input type="text" name="username" autocomplete="on/off" />
该属性默认是打开的。
10、novalidate不验证属性
novalidate 属性规定在提交表单时不应该验证 form 或 input 域。
<form action="demo_form.asp" method="get" novalidate="true"><button formnovalidate="formnovalidate" >提交</button>
11、multiple多选属性
multiple 属性规定输入域中可选择多个内容,如:email 和 file
<input type="file" multiple="multiple” />
<p>
<label>相片:</label>
<input type="file" multiple="multiple"/>
</p>
12、禁用属性:disabled
13、只读属性:readonly(只读文本框): true false
14、长度属性:size="初始长度"
15、选中属性:selected(默认选中项) 【列表】
16、选中属性:checked (单选按钮选中状态)【单选、复选】
17、输入的最大字符数 :maxlength:type为text或password时,
18、指定按钮是否被选中:checked:type为radio或checkbox时,
19、光标定位:autofocus
三、表单重写属性
表单重写属性(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>
View Code
运行结果: