学习网页的概念和分类,了解静态网页和动态网页的不同;了解网页浏览器的工作原理。了解HTML,XHTML,HTML5的概念,制作简单的HTML页面的开发。
可以在internet上通过网页浏览信息,如新闻,图片等,还可发布信息,如招聘信息等,网页是在某个地方某一台计算机上的一个文件。
网页主要由3部分组成:结构,表现,行为。
静态网页的特点是不论在何时何地浏览这个网页,看到的形式和内容都相同,且只能浏览,用户无法与网站进行互动。静态页面由HTML编写,扩展名一般为.htm, .html, .shtml, .xml等。与动态页面相比,动态网页是以.asp, .jsp, .php, .perl, .cgi等形式为后缀。
动态网页指网页的内容可以根据某种条件而自动改变。
采用B/S结构,即浏览器/服务器结构,用户工作界面是通过www浏览器来实现的:
浏览器的工作原理:
www的基础是HTTP协议,web浏览器就是用于通过url来获取并显示web网页的一种软件工具,url用于指定要取得的Internet上资源的位置与方式。
HTML是一种用来制作超文本文档的简单标记语言,用其编写的超文本文档称为HTML文档,它能独立于各种操作系统平台。
可扩展超文本标记语言XHTML:
XHTML是不需要编译,可以直接由浏览器执行,是一种增强了的HTML。它的可扩展性和灵活性将适应未来网络应用的更多需求,是基于XML的应用。开发者在HTML4.0的基础上,用XML的规则对其进行一些扩展,由此得到了XHTML,所以,建立XHTML的目的是为了实现HTML向xml的过渡。
HTML5简化了:<!DOCTYPE html>,简化了DOCTYPE,简化了字符集声明,以浏览器的原生能力替代脚本代码的实现,简单而强大的HTML5API。
文件扩展名是操作系统用来标志文件格式的一种机制。扩展名如同文件的身份说明,区别了文件的类别和作用。
HTML网页的文件后缀名是.html或者.htm.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"xxx">
声明的作用,告诉浏览器所书写的HTML代码的版本。
复制代码
<meta>标签,是HTML文档<head>标签内的一个辅助性标签,meta标签分为2个重要的属性:name和http-equiv,通常用于能够优化页面被搜索的可能性。
meta标签下name属性的使用:
<head>
<meta name="keywords" content="nine, twenty-three">
<meta name="description" content="...">
<meta name="generator" content="Dreamweaver">
<meta name="author" content="depp">
<meta name="robots" content="all">
</head>
复制代码
meta标签下的另一个属性http-equiv,其作用是反馈给浏览器一些明确的信息,帮助浏览器更精确地展示页面。
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312"/>
</head>
复制代码
link标签,定义了一个外部文件的链接,经常被用于链接外部css样式。
base标签为整个页面定义了所有链接的基础定位,其主要的作用是确保文档中所有的相对url都可以被分解成确定的文档地址。
style标签用于定义css的样式。表明了在页面中引入一个.style的样式表。
script标签用于定义页面内的脚本。
titl标题标签,body体标签.
一个好的HTML文档应具备以下3个方面:
<br>..</br>
<p>...</p>
复制代码
<p align=left>...</p>
<p align=center>...</p>
<p align=right>...</p>
复制代码
给文本加标注:<acronym title="">...</acronym>注释的内容放在title属性后的引号中,被注释的内容放在标签内。
无序列表:ul,li,有序列表:ol li
定义列表:
<dl>
<dt>...</dt>
<dd>...</dd>
<dt>...</dt>
<dd>...</dd>
</dl>
复制代码
所以总的来说:jepg可以压缩图像的容量,png的质量较好,gif可以做动画。
矢量图
说说矢量图和位图最大的区别:
无论是否对图像进行缩放,都不会影响矢量图的效果,但会影响图的质量。
设计者一般只愿意将logo,ui图标,标识符号等简单图像存为矢量图。
图像的分辨率
分辨率的单位是dpi即每英寸显示的线数。通常所指的分辨率有两种,屏幕分辨率和图片分辨率,屏幕分辨率即计算机显示器默认的分辨率。
一般目前大部分显示器的分辨率是1024px x 768px,图片分辨率定义是用于量度位图图像内数据量多少的一个参数。
分辨率越高的图像,包含的数据越多,图像的容量就越大,会消耗更多的计算机资源,需要更大的存储空间。
分辨率指的是每英寸的像素值,通过像素和分辨率的换算可以测算图片的长度。
页面中的图像
<img src=... alt=.../>
复制代码
<img style="vertial-align:text-top"/>
复制代码
<img style="vertical-align:middle"/>
复制代码
<img style="vertical-align:text-bottom"/>
复制代码
<img style="vertical-alignbaseline"/>
复制代码
hspace=30px表示图像左,右两边与页面其他内容隔30px的距离。vspace=30px表示图像上,下两边与页面的其他内容的间隔距离是30px。
<img src="" widht="" height="">
<img src="..." border=>
<hr align=".." width="..." size="...">
<a href="链接对象的路径">链接锚点对象</a>
复制代码
把邮箱留给需要联系你的人
<a href="mailto:邮箱地址">链接锚点对象</a>
复制代码
dashed 虚线
double 双线
groove 槽线
inset 内陷
outset 外陷
复制代码
热点图像区域的链接
map标签:
<map id=...>
<area shape="..." coords="..." href="...">
</map>
复制代码
shape属性,用于确定选区的形状,rect矩形,circle圆形,poly多边形。href属性,就是超链接。coords属性,用于控制形状的位置,通过坐标来找到这个位置。
计算矩形的面积
<html>
<head>
<title>计算矩形的面积</title>
<style type="text/css">
.result {font-weight:bold;}
</style>
<script language="JavaScript">
function calculate() {
var length = document.data.length.value;
var width = document.data.width.value;
var height = document.data.height.value;
var area = document.getElementById('area');
area.innerHTML = length*widht;
volume.innerHTML = length*widht*height;
}
</script>
复制代码
<form action="my.php"></form>
复制代码
它表明了这是一个表单,其作用是提交my.php页面中的数据。
<form name="data">
复制代码
原理:在客户端接收用户的信息,然后将数据递交给后台的程序来操控这些数据。
<script language="JavaScript">
复制代码
如果通过引用外部javascript程序,就像链接外联样式:
<script type="text/javascript" src="dada.js"></script>
复制代码
<form action="da.php"></form>
复制代码
提交方式用get,表单域中输入的内容会添加在action指定的url中,当表单提交之后,用户会获取一个明确的url。get在安全性上较差,所有表单域的值直接呈现。post除了有可见的处理脚本程序,别的东西都可以隐藏。
<form name="dada">
复制代码
<form action="mailto:da@qq.com" method="post" name="dada"
enctype="text/plain" target="_blank"></form>
复制代码
是指用户输入数据的地方,表单域可分为3个对象,input, textarea, select。
input对象下的多种表单的表现形式。
<input name="" type="" value="" size="" maxlength="">
复制代码
<form action="" method="post">
<input name="name" type="text" size="20" maxlength="12">
</form>
<input name="secret" type="password" size="20" maxlength="20">
<input name="one" type="radio" value="one" checked="checked">
<input name="one" type="radio" value="two">
<input type="submit" value="确定">
<input type="reset" value="恢复">
复制代码
创建submit按钮或reset按钮时,name属性不是必需的。
使用hidden来记录页面的数据并将它隐藏起来,用户对这些数据通常并不关心,但是必须提交数据。
<form action=da.asp>
<input type=hidden name=somehidden value=dada>
<input type=submit value=下一页>
</form>
复制代码
image样式的表单
<input type="image" src="图片/小图标.jpg" alt="确定">
复制代码
file上传文件的样式表单
file样式表单允许用户上传自己的文件
<html>
<head>
<title>file样式的表单</title>
<style type="text/css">
body {font:120% 微软雅黑;}
input {font:100% 微软雅黑;}
</style>
</head>
上传我的文件:
<form action="..." method="post" enctype="multipart/form-data">
<input type="file" name="uploadfile" id="uploadfile"/>
</form>
</body>
</html>
复制代码
textarea对象的表单
textarea对象的表单
<html>
<head>
<title>file样式的表单</title>
<style type="text/css">
body{font:120% 微软雅黑;}
textarea{font:80% 微软雅黑;color:navy;}
</style>
</head>
<body>
留言板
<form action="..." method="post" enctype="multipart/form-data">
<textarea name="dada" rows="10" cols="50" value="dada">请说:</textarea>
</form>
</body>
</html>
复制代码
select对象的表单
select对象的表单
<form action="">
地址:
<select name="da1">
<option>1</option>
</select>
</form>
复制代码
使用optgroup标签配合label属性来给选项分类:
<select name="上海">
<optgroup label="da1">
<option>1</option>
</optgroup>
<optgroup label="da2">
<option>2</option>
</optgroup>
</select>
复制代码
在select标签中加入size属性即可,如size=6表示是一个能容纳6行文字的文本框,超出设置的行数时,将出现滚动条。
<select name="上海" size="6">
复制代码
表单域集合:表单域的代码由fieldset标签和legend标签组合而成。
<form action="..." method="post">
<fieldset>
<legend>注册信息:</legend>
输入用户名:<input name="name" type="text" size="20" maxlength="12">
</fieldset>
</form>
复制代码
表单输入类型
<input type="url" name="webUrl" id="webUrl" value="http://wwwxxx"/>
复制代码
<input type="email" name="dada" id="dada" value="23@qq.com"/>
复制代码
<input type="range" name="volume" id="volume" min="0" max="1" step="0.2"/>
复制代码
<input type="number" name="score" id="score" min="0" max="10" step="0.5"/>
复制代码
增加表单的特性以及元素
<input name="name" type="text" form="form1" required/>
<form id="form1">
<input type="submit" value="提交"/>
</form>
复制代码
<form id="form1" method="post">
<input name="name" type="text" form="form1"/>
<input type="submit" value="提交到page1" formaction="?page=1”/>
<input type="submit" value="提交到page2" formaction="?page=2"/>
<input type="submit" value="提交"/>
</form>
复制代码
placeholder特性
<input name="name" type="text" placeholder="请输入关键词"/>
复制代码
autofocus特性:用于当页面加载完成时,可自动获取焦点,每个页面只允许出现一个有autofocus特性的input元素。
<input name="key" type="text" autofocus/>
复制代码
autocomplete特性用于form元素和输入型的Input元素,用于表单的自动完成。
input name="key" type="text" autocommplete="on"/>
复制代码
autocomplete特性有三个值,可以指定"on","off"和""不指定,不指定就将使用浏览器的默认设置。
<input name="email" type="email" list="emaillist"/>
<datalist id="emaillist">
<option value="23#qq.com">xxxx</option>
</datalist>
复制代码
keygen元素提供一个安全的方式来验证用户。
<form action="">
<input type="text" name="name"/><br>
<keygen name="security"/>
<br><input type="submit"/>
</form>
复制代码
<form oninput="x.value=dada.value">
<input type="range" name="volume" value="50"/>
<output name="x"></output>
</form>
复制代码
为某个表单内部的元素设置了required特性,那么这项的值不能为空,否则无法提交表单。
<input name="name" type="text" placeholder="dada" required/>
复制代码
<input name="code" type="text" value="" pattern="[0-9]{6}" placeholder="da"/>
复制代码
<input type="range" name="dada" id="dada" min="0" max="1" step="0.2"/>
复制代码
<form action="dada.asp" novalidate="novalidate">
<input type="email" name="user_email"/>
<input type="submit"/>
</form>
复制代码
var validityState=document.getElementById("username").validity;
复制代码
var willValidate = document.getElementById("username").willValidate;
复制代码
var validationMessage=document.getElementById("username").validationMessage;
复制代码
好了各位,以上就是这篇文章的全部内容,能看到这里的人都是人才。我后面会不断更新技术相关的文章,如果觉得文章对你有用,欢迎给个“赞”,也欢迎分享,感谢大家 !!
TML5是HTML最新的修订版本,由万维网联盟(W3C)于2014年10月完成标准制定。目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络标准达到符合当代的网络需求。
HTML5添加了许多新的语法特征,其中包括<video>、<audio>和<canvas>元素,同时集成了SVG内容。这些元素是为了更容易的在网页中添加和处理多媒体和图片内容而添加的。其它新的元素如<section>、<article>、<header>和<nav>则是为了丰富文档的数据内容。新的属性的添加也是为了同样的目的。同时也有一些属性和元素被移除掉了。一些元素,像<a>、<cite>和<menu>被修改,重新定义或标准化了。同时APIs和DOM已经成为HTML5中的基础部分了。HTML5还定义了处理非法文档的具体细节,使得所有浏览器和客户端程序能够一致地处理语法错误。
发展历史
2004年网页超文本技术工作小组(WHATWG)开始制定新标准。
2009年W3C与WHATWG合作共同为发展HTML5而努力。
2004年6月,宣布第二个草案Web Applications 。后来这两种规范合并形成HTML5。
2007年,获得W3C接纳,并成立了新的HTML工作团队。
2008年1月22日,第一份公开工作草案发布。
2014年10月28日,W3C正式发布HTML 5.0推荐标准。
新特性
HTML5将Web带入一个成熟的应用平台,在这个平台上,视频、音频、图像、动画以及与设备的交互都进行了规范。
智能表单
表单是实现用户与页面后台交互主要组成部分,HTML5在表单的设计上功能更加强大。input类型和属性的多样性大大地增强了HTML可表达的表单形式,再加上新增加的一些表单标签,使得原本需要JavaScript来实现的控件,可以直接使用HTML5的表单来实现;一些如内容提示、焦点处理、数据验证等功能,也可以通过HTML5的智能表单属性标签来完成。
绘图画布
HTML5的canvas元素可以实现画布功能,该元素通过自带的API结合使用JavaScript脚本语言在网页上绘制图形和处理,拥有实现绘制线条、弧线以及矩形,用样式和颜色填充区域,书写样式化文本,以及添加图像的方法,且使用JavaScript可以控制其每一个像素。HTML5的canvas元素使得浏览器无需Flash或Silverlight等插件就能直接显示图形或动画图像。
多媒体
HTML5最大特色之一就是支持音频视频,在通过增加了<audio>、<video>两个标签来实现对多媒体中的音频、视频使用的支持,只要在Web网页中嵌入这两个标签,而无需第三方插件(如Flash)就可以实现音视频的播放功能。HTML5对音频、视频文件的支持使得浏览器摆脱了对插件的依赖,加快了页面的加载速度,扩展了互联网多媒体技术的发展空间。
地理定位
现今移动网络备受青睐,用户对实时定位的应用越来,要求也越来越高。HTML5通过引入Geolocation的API可以通过GPS或网络信息实现用户的定位功能,定位更加准确、灵活。通过HTML5进行定位,除了可以定位自己的位置,还可以在他人对你开放信息的情况下获得他人的定位信息。
数据存储
HTML5较之传统的数据存储有自已的存储方式,允许在客户端实现较大规模的数据存储。为了满足不同的需求,HTML5支持DOM Storage和Web SQL Database 两种存储机制。其中,DOM Storage 适用于具有key/value对的基本本地存储;而WebSQLDatabase是适用于关系型数据库的存储方式,开发者可以使用SQL语法对这些数据进行查询、插入等操作。
多线程
HTML5利用Web Worker将Web应用程序从原来的单线程业界中解放出来,通过创建一个Web Worker对象就可以实现多线程操作。JavaScript创建的Web程序处理事务都是在单线程中执行,响应时间较长,而当JavaScript过于复杂时,还有可能出现死锁的局面。HTML5新增加了一个WebWorkerAPI,用户可以创建多个在后台的线程,将耗费较长时间的处理交给后台面不影响用户界面和响应速度,这些处理不会因用户交互而运行中断。使用后台线程不能访问页面和窗口对象,但后台线程可以和贞面之间进行数据交互。子线程与子线程之间的数据交互,大致步骤如下:①先创建发送数据的子线程;②执行子线程任务,把要传递的数据发送给主线程;③在主线程接受到子线程传递回的消息时创建接收数据的子线程,然后把发送数据的子线程中返回的消息传递给接收数据的子线程;④执行接收数据子线程中的代码。
JavaScript 语言是采用单线程模型,也就是任务只能在一个线程上完成,一次只能做一件事,前面任务没执行完,后面的任务只能排队等待,由于多核 CPU 的出现,单线程带来很大不便,无法充分发挥计算机的能力。
Web Worker 就是为了 javascript 创造多线程而生的,主线程创建 worker 子线程,将一些任务分配给后台运行,等到子线程完成计算任务,再把结果返回给主线程,好处是计算密集型或高延迟的任务被 worker 负担了,主线程就会很流畅。网页加载展示可分为两部分:主进程也叫 UI 进程,子进程也叫工作进程,子进程不能控制 UI 进程,只能进行数据交互。
Web Worker 子线程一旦创建成功,就会独立于其他脚本始终运行,不会被主线程上活动打断。这样有利于随时响应主线程的通信。但是这也造成 Worker 比较耗费资源,不应该过度使用,使用完毕之后应该关闭。
使用 Web Worker 注意点:
2.1 创建Worker线程:
创建worker之前,先检查浏览器是否支持它。使用 typeof 检查,代码如下:
if( typeof Worker !== undefined ){
console.log("支持Worker线程")
}else{
console.log("不支持Worker")
}
检查浏览器支持 worker 之后,主线程使用 new 命令,调用 worker() 构造函数,新建 Worker 线程。
var myWorker = new Worker('worker.js')
构造函数的参数是一个脚本文件,该文件不能是本地文件,必须来自网络脚本,该文件就是Worker 线程要执行的任务。如果该文件加载失败,Worker 就会失败。
2.2 主线程与子线程数据通信:
主线程调用 postMessage() 方法,向 Worker 发消息。postMessage(参数) 方法中参数就是传给 Worker 的数据,这个数据可以是任意格式。
myWorker.postMessage("你好")
紧接着 Worker 线程,通过 onmessage 指定监听函数,接收消息。worker.js 代码如下:
this.onmessage = function(res){
console.log("接收到消息",res.data)
this.postMessage("我收到消息了")
}
worker子进程收到消息之后,可以继续向主进程发送消息,使用 postMessage()。代码如上。
主进程也通过onmessage监听函数接收消息。
myWorker.onmessage = function(res){
console.log("主线程收到消息:",res.data)
}
2.3 Worker线程
Worker线程内部,添加 this.onmessage 监听函数,其中 this 是子线程的全局对象,也可以替换成 self,self 代表子线程本身。等同于:
self.onmessage 《=》 this.onmessage
除了使用 self.onmessage 指定监听函数,也可以使用 this.addEventListener() 监听事件对象。上述 worker.js 代码可改为:
//写法一
this.addEventListener("message",function(res){
console.log("res",res.data)
})
//写法二
addEventListener("message",function(res){
this.console.log("1",res.data)
})
2.4 错误处理
主线程可以监听Worker是否发生错误,如果发生错误,Worker 会触发主线程的 error 事件。
// 写法一
myWorker.onerror = function(e){
console.log('e',e)
}
//写法二
myWorker.addEventListener("error",function(e){
console.log("e",e)
})
worker 子线程也可以监听 error 事件。
2.5 关闭 Worker
Worker 比较耗费资源,不应该过度使用,使用完毕之后应该关闭。主线程和子线程都可以关闭。
//主线程关闭
myWorker.terminate()
//子线程关闭
self.close() //方法一
this.close() //方法二
通常情况下,Worker 载入的是一个单独的 javascript 文件,但是也可以载入与主线程在同一个网页的代码。网页中添加 Worker 脚本,必须注意指定script标签的type属性是一个浏览器不认识的值,否则就会失去意义。如:
<script type="app/worker" id="wrs">
this.onmessage = function(res){
console.log("接收参数",res.data)
}
</script>
然后,需要读取这段代码,先将嵌入网页的脚本代码转成二进制对象,然后为这个二进制对象生成url,再让worker加载url,这样就实现了主进程和worker在同一个网页内。代码如下:
<script>
var blob = new Blob([document.querySelector("#wrs").textContent]);
var url = window.URL.createObjectURL(blob);
var worker = new Worker(url)
worker.postMessage("发送数据")
</script>
Worker构造函数方法:
子进程属性方法:
Worker() 构造函数,可以接受两个参数,第一个是脚本的地址,第二个是参数是配置对象,该对象指定Worker的名称。如:
var myWorker = new Worker('worker.js', { name : 'myWorker' });
*请认真填写需求信息,我们会在24小时内与您取得联系。