在 HTML 文档中 <input type="file"> 标签每出现一次,一个 FileUpload 对象就会被创建。
该元素包含一个文本输入字段,用来输入文件名,还有一个按钮,用来打开文件选择对话框以便图形化选择文件。
该元素的 value 属性保存了用户指定的文件的名称,但是当包含一个 file-upload 元素的表单被提交的时候,浏览器会向服务器发送选中的文件的内容而不仅仅是发送文件名。
当用户选择或编辑一个文件名,file-upload 元素触发 onchange 事件句柄。
看个简单例子:
[html]view plaincopy
<!-- oscar999 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="oscar999">
<title></title>
<script>
function handleFiles(files)
{
if(files.length)
{
var file = files[0];
var reader = new FileReader();
reader.onload = function()
{
document.getElementById("filecontent").innerHTML = this.result;
};
reader.readAsText(file);
}
}
</script>
</head>
<body>
<input type="file" id="file" onchange="handleFiles(this.files)"/>
<div id="filecontent"></div>
</body>
</html>
这里读取一个文件, 显示在div 中。
(在IE8 中 无效, this.files 无法读取文件。这个属于HTML5 的特性)
当选择了一个文件时,就会把包含这个文件的列表(一个FileList对象)作为参数传给handleFiles()函数了。这个FileList对象类似一个数组,可以知道文件的数目,而它的元素就是File对象了。从这个File对象可以获取name、size、lastModifiedDate和type等属性。把这个File对象传给FileReader对象的读取方法,就能读取文件了。
Html5 支持的File 的操作不仅仅是文件的选择,
在HTML5 之前需要使用 Applet 和 SilverLight 才能达到的文件拖拽功能,在HTML5 中也能轻松的实现,
看代码:
[html]view plaincopy
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="oscar999">
<title></title>
</head>
<body>
<div id="dropbox"> Drop Here </div>
<div id="filecontent"></div>
<script>
var dropbox = document.getElementById("dropbox");
dropbox.addEventListener("dragenter", dragenter, false);
dropbox.addEventListener("dragover", dragover, false);
dropbox.addEventListener("drop", drop, false);
function dragenter(e) {
e.stopPropagation();
e.preventDefault();
}
function dragover(e) {
e.stopPropagation();
e.preventDefault();
}
function drop(e) {
e.stopPropagation();
e.preventDefault();
var dt = e.dataTransfer;
var files = dt.files;
if(files.length)
{
var file = files[0];
var reader = new FileReader();
reader.onload = function()
{
document.getElementById("filecontent").innerHTML = this.result;
};
reader.readAsText(file);
}
}
</script>
</body>
</html>
这里通过事件对象的 dataTransfer 可以得到文件。
在第一个例子中, 我们使用 FileReader类来读取文件的内容,
在 W3C 草案中,File 对象只包含文件名,文件类型等只读属性;FileReader用于内容读取和监控读取状态。
(在firefox 中, 可以直接使用 var fileBinary = file.getAsBinary(); 读取文件的二进制源码)
FileReader提供的方法包括:
1. readAsBinaryString
2. readAsDataURL
3. readAsText
4. abort
.........
以下,举一个 使用 FileReader 将用户选择的图片不通过后台即时显示出来的例子。
[html]view plaincopy
function handleFiles(files){
for (var i = 0; i < files.length; i++) {
var file = files[i];
var imageType = /image.*/;
if (!file.type.match(imageType)) {
continue;
}
var img = document.createElement("img");
img.classList.add("obj");
img.file = file;
preview.appendChild(img);
var reader = new FileReader();
reader.onload = (function(aImg){
return function(e){
aImg.src = e.target.result;
};
})(img);
reader.readAsDataURL(file);
}
}
在一般的HTML 中,使用方式是把file input 放在form 中, 以POST 方式把文件传递到后端。
在 HTML5 中, 也可以通过 FileReader 的 readAsBinaryString 方法读取到文件的二进制码,然后通过 XMLHttpRequest 的 sendAsBinary 方法将其发送出去。
[javascript]view plaincopy
var xhr = new XMLHttpRequest();
xhr.open("POST", "url");
xhr.overrideMimeType('text/plain; charset=x-user-defined-binary');
<pre code_snippet_id="422893" snippet_file_name="blog_20140709_4_2106578" class="sh_javascript sh_sourceCode" name="code">xhr<span class="sh_symbol">.</span><span class="sh_function">sendAsBinary</span><span class="sh_symbol">(</span>binaryString<span class="sh_symbol">);</span></pre><br>
、常用的标签
<h1>~<h6> 表示是一个标题
<p> 段落标签
<hr/> 水平线标签
<br/> 换行标签
<sub> 下标
<sup> 上标
<pre> 原样标签: 原样标签会保留空格和换行符。
<ol> <li> 有序的列表标签、
<ul> <li> 无序的列表标签。
项目列表标签(dl dt dd)
行内标签(span)
块标签<div> div标签的内容会独立占一行。
二、实体标签
空格
小于号 <
大于号 >
-----------------------------
人民币 ¥;
版权 ©
商标 ®
三、媒体标签
<embed></embed>
hidden : 设置隐藏插件是否隐藏。
src :用于指定音乐的路径
<embed src="1.mp3" ></embed>
<marquee> 飘动标签direction : 指定飘动的方向
scrollamount : 指定飘动的速度。
loop :指定飘动的次数
四、超链接标签
<a> 超链接标签
a标签常用的属性:
href : 用于指定链接的资源
target: 设置打开新资源的目标。
_Blank 在独立的窗口上打开新资源
_self 在当前窗口打开新资源
file: file协议(文件协议)这种协议主要是用于搜索本地机器的资源文件的。
格式:
file:///f:/美女/1.jpg
邮件 的协议: mailTo迅雷的协议: thunder
超链接标签的作用:
1. 可以用于链接资源。
2. 锚点点位.
1. 首先编写一个锚点 锚点的格式: <a name="锚点名字"> 数据</a>
2. 使用a标签 的herf属性连接到锚点出。 href=”#锚点的名字“
五、图片标签
img标签常用的属性:
width: 设置图片宽度
height 设置图片高度
alt: 如果图片资源无法找到,那么就显示对应的文字对图片进行说明。
六、表格标签
表格使用到的标签:
<table> 表格
<tr> 行
<td> 单元格
<th> 表头 默认的样式是居中,加粗。
<caption> 表格的标题
表格常用的属性:
border 设置表格的边框
width : 设置表格的宽度
height: 设置表格的高度的。
colspan: 设置单元格占据指定的列数。
rowspan : 设置单元格占据指定的行数。
<thead> 标签用于组合 HTML 表格的表头内容。
<thead> 元素应该与 <tbody> 和 <tfoot> 元素结合起来使用,用来规定表格的各个部分(表头、主体、页脚)。
通过使用这些元素,使浏览器有能力支持独立于表格表头和表格页脚的表格主体滚动。当包含多个页面的长的表格被打印时,表格的表头和页脚可被打印在包含表格数据的每张页面上。
<thead> 标签必须被用在以下情境中:作为 <table> 元素的子元素,出现在 <caption>、<colgroup> 元素之后,<tbody>、 <tfoot> 和 <tr> 元素之前。
七、表单标签
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<!-- 表单标签: 表单标签的作用是用于提交数据给服务器的表单标签的根标签是<form>标签常用的属性action: 该属性是用于指定提交数据的地址。method: 指定表单的提交方式。get : 默认使用的提交方式。 提交的数据会显示在地址栏上。post : 提交的数据不会显示在地址栏上。注意: 表单项的数据如果需要提交到服务器上面,那么表单项必须要有name的属性值 -->
</head>
<body>
<form action="http://www.baidu.com" method="post"> <!-- 文本输入框 单 行- -> 用户名:<input name="userName" type="text"/><br/>
<!-- 密码框 -->
密码:<input name="password" type="password"/><br/>
<!-- 单选框 -->
性别: 男<input checked="true" value="man" name="sex" type="radio"/>
女<input name="sex" value="woman" type="radio"/><br/>
< !-- 下拉框 -->
来自的城市:<select name="city">
<option value="BJ">北京</option>
<option value="SH">上海</option>
<option value="GZ">广州</option>
<option value="SZ">深圳</option>
</select><br/>
<!-- 复选框 同一组的复选框name的属性值要一致 -->
兴趣爱好:java <input value="java" name="hobit" checked="checked" type ="checkbox" />
javascript <input type="checkbox" value="javascript" name="hobit" />
android <input value="android" name="hobit" type="checkbox" /><br/> <!-- 文件上传框-->
大头照:<input name="image" type="file" /><br/>
个人简介:
<!-- 文本域 -->
<textarea name="intro" rows="10" cols="30"></textarea><br/>
<!-- 提交按钮 -->
<input type="submit" value="注册"/>
<!-- 重置按钮 -->
<input type="reset" value="重置"/>
</form>
</body>
</html>
更多精彩内容在微信公众平台:网页设计自学平台
干货!免费领取Adobe高级讲师前端教程
点我领取
览器支持
所有主流浏览器都支持 <a> 标签。
标签定义及使用说明
<a> 标签定义超链接,用于从一个页面链接到另一个页面。
<a> 元素最重要的属性是 href 属性,它指定链接的目标。
在所有浏览器中,链接的默认外观如下:
未被访问的链接带有下划线而且是蓝色的
已被访问的链接带有下划线而且是紫色的
活动链接带有下划线而且是红色的
提示和注释
提示:如果没有使用 href 属性,则不能使用 hreflang、media、rel、target 以及 type 属性。
提示:通常在当前浏览器窗口中显示被链接页面,除非规定了其他 target。
提示:请使用 CSS 来改变链接的样式。
HTML 4.01 与 HTML5之间的差异
在 HTML 4.01 中,<a> 标签既可以是超链接,也可以是锚。在 HTML5 中,<a> 标签是超链接,但是假如没有 href 属性,它仅仅是超链接的一个占位符。
HTML5 有一些新的属性,同时不再支持一些 HTML 4.01 的属性。
属性
New :HTML5 中的新属性。
属性 | 值 | 描述 |
---|---|---|
charset | char_encoding | HTML5 不支持。规定目标 URL 的字符编码。 |
coords | coordinates | HTML5 不支持。规定链接的坐标。 |
downloadNew | filename | 指定下载链接 |
href | URL | 规定链接的目标 URL。 |
hreflang | language_code | 规定目标 URL 的基准语言。仅在 href 属性存在时使用。 |
mediaNew | media_query | 规定目标 URL 的媒介类型。默认值:all。仅在 href 属性存在时使用。 |
name | section_name | HTML5 不支持。规定锚的名称。 |
rel | alternateauthorbookmarkhelplicensenextnofollownoreferrerprefetchprevsearchtag | 规定当前文档与目标 URL 之间的关系。仅在 href 属性存在时使用。 |
rev | text | HTML5 不支持。规定目标 URL 与当前文档之间的关系。 |
shape | defaultrectcirclepoly | HTML5 不支持。规定链接的形状。 |
target | _blank_parent_self_topframename | 规定在何处打开目标 URL。仅在 href 属性存在时使用。 |
typeNew | MIME_type | 规定目标 URL 的 MIME 类型。仅在 href 属性存在时使用。注:MIME = Multipurpose Internet Mail Extensions。 |
全局属性
<a> 标签支持 HTML 的全局属性。
事件属性
<a> 标签支持 HTML 的事件属性。
创建超级链接
本例演示如何在 HTML 文档中创建链接。
将图像作为链接
本例演示如何使用图像作为链接。
在新的浏览器窗口打开链接
本例演示如何在新窗口打开一个页面,这样的话访问者就无需离开您的站点了。
创建电子邮件链接
本例演示如何链接到一个邮件。(本例在安装邮件客户端程序后才能工作。)
创建电子邮件链接 2
本例演示更加复杂的邮件链接。
使用锚跳转到同一个页面的不同位置
本例演示如何使用锚的 id 属性跳转到页面的不同位置( HTML5 不支持 name 属性)
如您还有不明白的可以在下面与我留言或是与我探讨QQ群308855039,我们一起飞!
*请认真填写需求信息,我们会在24小时内与您取得联系。