• 什么是HTML5
1> 2014年才定制完HTML5的标准,历时8年
2> 移动先行
• 为什么要用HTML5
1> 跨平台
利用HTML5编写的UI界面能运行在所有拥有浏览器的平台
2> HTML5的运行平台:浏览器
3> 但是HTML5不能完成一些特定的功能,比如:拍照(ImagePickerController)、访问相册....
• 如何使用HTML5
1> 自己编写大量的HTML5代码
2> 使用现成的HTML5框架
§ sencha-touch
§ phoneGap
§ jQuery mobile
• 手机APP的开发模式
1> 原生(纯OC)
2> 纯HTML5
3> 原生+HTML5
• 为什么要学习HTML5
1> 未来的一种趋势
2> 增加面试、开发竞争力
• Android程序员 Java、服务器、HTML5
• 公司职位的划分
1> 平面设计师 作图、切图、HTML、CSS
2> 前端工程师 HTML、CSS、Javascript、模板技术
3> 后台工程师 服务器(Java、.Net、PHP)、数据库
4> 移动工程师(iOS/android)手机UI界面(OC、HTML5)、跟服务器交互
• 开发工具
1> Android
eclipse、MyEclipse、android studio
2> iOS
Xcode
3> HTML5
eclipse、MyEclipse
后端喜爱
Dreamwaver
⺴⻚三剑客 Dreamwaver、Flash、Fireworks -> Adobe
WebStrom
前端喜爱,⼤神编辑器,默认集成各种各样的插件,配⾊完美
• Web开发新时代
• Web1.0
• 主流技术:HTML+CSS
• Web2.0
• 主流技术:Ajax(JavaScript/DOM/异步数据请求)
• Web3.0
• 主流技术:HTML5+CSS3
HTML5亮点: Canvas HTML5音视频 Web存储 Geolocation Workers多线程处理
CSS3亮点: 设计动画 2D变形 N多新特性
网页的组成
• 一个有具体功能的完整的网页,一般由3部分组成
• HTML
• 网页的具体内容和结构
• CSS
• 网页的样式(美化网页最重要的一块)
• JavaScript(掌握)
• 网页的交互效果,比如对用户鼠标事件做出响应
• HTML\CSS\JavaScript学习资料:http://www.w3school.com.cn/
常见的HTML标签
标题:h1、h2、h3、h4、h5....
段落:p
换行:br
容器:div、span(用来容纳其他标签)
表格:table、tr、td
列表:ul、ol、li
图片:img
表单:input
链接:a
HTML5新增标签
HTML5新增了27个标签元素,废弃了16个标签元素,主要包括结构性标签、级块性标签、行内语义性标签、交互性标签
1.结构性标签
负责Web上下文结构的定义,确保HTML文档,包括:
article 文章主体内容(一篇博客、一篇论坛帖子、一段用户评论、插件)
header 标记头部区域内容
footer 标记脚部区域内容
section 区域章节表述
nav
菜单导航,链接导航
2.块级性标签
完成Web页面区域的划分,确保内容的有效分隔,包括:
aside 注记,贴士,侧栏,摘要,插入的引用作为补充主体的内容
figure 对多个元素组合并展示的元素,常与figcaption联合使用
code 表示一段代码块
dialog 人与人之间对话,包含dt和dd两个组合元素(dt用于表示说话者、dd用于表示说话者的内容)
3.行内语义性标签
完成Web页面具体内容的引用和表述,丰富展示内容,包括:
meter 特定范围内的数值,如工资、数量、百分比
time 时间值
progress 进度条,可用max、min、step进行控制,完成对进度的表示和监听
video 视频元素,用于视频播放,支持缓冲预载和多种视频媒体格式
audio
音频元素,用于音频播放,支持缓冲预载和多种音频媒体格式
4.交互性标签
功能性内容的表达,有一定的内容和数据的关联,是各种事件的基础,包括:
details 表示一段具体的内容,默认不显示,通过某种方式(单击)与legend交互才会显示
datagrid 控制客户端数据与显示,可用于动态脚本及时更新
menu 用于交互菜单
command
用来处理命令按钮
CSS
什么是CSS
CSS的全称是Cascading Style Sheets,层叠样式表
它用来控制HTML标签的样式,在美化网页中起到非常重要的作用
CSS的编写格式是键值对形式的,比如
color: red;
background-color: blue;
font-size: 20px;
冒号:左边的是属性名,冒号:右边的属性值
CSS的3种书写形式
CSS有3种书写形式
行内样式:(内联样式)直接在标签的style属性中书写
<body style="color: red;">
页内样式:在本网页的style标签中书写
<style>
body {
color:
red;
}
</style>
外部样式:在单独的CSS文件中书写,然后在网页中用link标签引用
<link rel="stylesheet"
href="index.css">
CSS的两大重点
属性
通过属性的复杂叠加才能做出漂亮的网页
选择器
通过选择器找到对应的标签设置样式
CSS选择器
– 选择器优先级
选择器的针对性越强,它的优先级就越高
选择器的权值
通配选择符(*):0
标签: 1
类: 10
属性: 10
伪类: 10
伪元素: 1
id: 100
important:1000
原则:选择器的权值加到一起,大的优先;如果权值相同,后定义的优先
CSS选择器
– 选择器优先级
优先级排序
important > 内联> id > 类> 标签| 伪类| 属性选择> 伪元素> 通配符> 继承
HTML标签类型
HTML有N多标签,根据显示的类型,主要可以分为3大类
块级标签
独占一行的标签
能随时设置宽度和高度(比如div、p、h1、h2、ul、li)
行内标签(内联标签)
多个行内标签能同时显示在一行
宽度和高度取决于内容的尺寸(比如span、a、label)
行内-块级标签(内联-块级标签)
多个行内-块级标签可以显示在同一行
能随时设置宽度和高度(比如input、button)
修改标签的显示类型
CSS中有个display属性,能修改标签的显示类型
none:隐藏标签
block:让标签变为块级标签
inline:让标签变为行内标签
inline-block:让标签变为行内-块级标签(内联-块级标签)
CSS属性
CSS有N多属性,根据继承性,主要可以分为2大类
可继承属性
父标签的属性值会传递给子标签
一般是文字控制属性
不可继承属性
父标签的属性值不能传递给子标签
一般是区块控制属性
CSS属性
– 可继承属性(红色表示常用)
所有标签可继承
visibility、cursor
内联标签可继承
letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction
块级标签可继承
text-indent、text-align
列表标签可继承
list-style、list-style-type、list-style-position、list-style-image
CSS属性
– 不可继承属性(红色表示常用)
display、margin、border、padding、background
height、min-height、max-height、width、min-width、max-width
overflow、position、left、right、top、bottom、z-index
float、clear
table-layout、vertical-align
page-break-after、page-bread-before
unicode-bidi
RGBA透明度
RGB(红色R+绿色G+蓝色B),RGBA则在其基础上增加了Alpha通道,可用于设置透明值
块阴影与圆角阴影
box-shadow text-shadow
圆角
border-radius
边框图片
border-image
形变
transform: none |
<transform-function>[<transform-fuction>]
CSS布局
默认情况下,所有的网页标签都在标准流布局中
从上到下,从左到右
脱离标准流的方法有
float属性
position属性 和left、right、top、bottom属性
CSS布局
– float属性
float属性的常用取值有
left:脱离标准流,浮动在父标签的最左边
right:脱离标准流,浮动在父标签的最右边
absolute:默认情况下是对浏览器进行定位
JavaScript
什么是JavaScript
JavaScript是一门广泛用于浏览器客户端的脚本语言
由Netspace公司设计,当时跟Sun公司合作,所以名字起得像Java
业内一般简称JS
JS的常见用途
HTML DOM操作(节点操作,比如添加、修改、删除节点)
给HTML网页增加动态功能,比如动画
事件处理:比如监听鼠标点击、鼠标滑动、键盘输入
Node.js
什么是Node.js
Node是一个JavaScript运行环境(runtime),是对Google V8引擎进行了封装
V8引擎执行JavaScript的速度非常快,性能非常好
Node.js的优势
可以作为后台语言
单线程
不新增额外线程的情况下,依然可以对任务进行并行处理(采用事件轮询)
非阻塞I/O、V8虚拟机、事件驱动
JavaScript的书写方式
JS常见的书写方式有2种
页内JS:在当前网页的script标签中编写
<script type="text/javascript">
</script>
外部JS
<script src="index.js"></script>
Canvas
HTML
<canvas
id="canvas"></canvas>
JS
var canvas =
document.getElementById('canvas');
var context =
canvas.getContext('2d');
context是一个绘图的上下文环境
2d是二维图形
Canvas绘制直线
起点
context.moveTo(100,100);
终点
context.lineTo(400, 400);
绘制
context.stroke();
设置线条颜色和宽度
context.strokeStyle = 'red';
context.lineWidth = 5;
设置填充色
context.fillStyle = 'blue';
Canvas绘制弧线
context.arc(
centerX,
centerY, radius,
startingAngle, endingAngle,
anticlockwise=false
)
centerX, centerY: 圆心的坐标
radius: 半径
startingAngle, endingAngle: 开始角度,结束角度
anticlockwise:false顺时针true逆时针
<article>
标记定义一篇文章
<header>
标记定义一个页面或一个区域的头部
<nav>
标记定义导航链接
<section>
标记定义一个区域
<aside>
标记定义页面内容部分的侧边栏
<hgroup>
标记定义文件中一个区块的相关信息
<figure>
标记定义一组媒体内容以及它们的标题
<figcaption>
标签定义figure 元素的标题。
<footer>
标记定义一个页面或一个区域的底部
<dialog>
标记定义一个对话框(会话框)类似微信
多媒体交互标签
<video>
标记定义一个视频
<audio>
标记定义音频内容
<source>
标记定义媒体资源
<canvas>
标记定义图片
<embed>
标记定义外部的可交互的内容或插件 比如flash
Web应用标签
<menu>命令列表
<menuitem>menu命令列表标签
FF(嵌入系统)
<command>
menu标记定义一个命令按钮
<meter>状态标签(实时状态显示:气压、气温)C、O
<progress>状态标签 (任务过程:安装、加载)
C、F、O
<datalist>
为input标记定义一个下拉列表,配合option F、O
<details>
标记定义一个元素的详细内容 ,配合dt、dd C
注释标签
<ruby>
标记定义 注释或音标
<rp>
告诉那些不支持Ruby元素的浏览器如何去显示
<rt>
标记定义对ruby的注释内容文本
其他标签
<keygen>
标记定义表单里一个生成的键值(加密信息传送)O、F
<mark>
标记定义有标记的文本(黄色选中状态)
<output>
标记定义一些输出类型,计算表单结果配合oninput事
删除的HTML标签
纯表现的元素:
basefont,big,center,font,
s,strike,tt,u;
对可用性产生负面影响的元素:
frame,frameset,noframes;
产生混淆的元素:
acronym ,applet,isindex,dir
重新定义的HTML标签
<b>
代表内联文本,通常是粗体,没有传递表示重要的意思
<i>
代表内联文本,通常是斜体,没有传递表示重要的意思
<dd>
可以同details与figure一同使用,定义包含文本,dialog也可用
<dt>
可以同details与figure一同使用,汇总细节,dialog也可用
表示主题结束,而不是水平线,虽然显示相同
<menu>
重新定义用户界面的菜单,配合commond或者menuitem使用
<small>
表示小字体,例如打印注释或者法律条款
<strong>
表示重要性而不是强调符号