HTML5发展史
HTML5草案的前身名为 Web Applications 1.0,于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的 HTML 工作团队。
� HTML 5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。
� 2012年12月17日,万维网联盟(W3C)正式宣布凝结了大量网络工作者心血的HTML5规范已经正式定稿。根据W3C的发言稿称:“HTML5是开放的Web网络平台的奠基石。”
� 2013年5月6日, HTML 5.1正式草案公布。该规范定义了第五次重大版本,第一次要修订万维网的核心语言:超文本标记语言(HTML)。在这个版本中,新功能不断推出,以帮助Web应用程序的作者,努力提高新元素互操作性。
� 本次草案的发布,从2012年12月27日至今,进行了多达近百项的修改,包括HTML和XHTML的标签,相关的API、Canvas等,同时HTML5的图像img标签及svg也进行了改进,性能得到进一步提升
兼容
支持Html5的浏览器包括Firefox(火狐浏览器),IE9及其更高版本,Chrome(谷歌浏览器),Safari,Opera等;国内的 遨游浏览器(Maxthon),以及基于IE或Chromium(Chrome的工程版或称实验版)所推出的360浏览器、搜狗浏览器、QQ浏览器、猎豹 浏览器等国产浏览器同样具备支持HTML5的能力。
语法
-
内容类型(ContentType)
- HTML5的文件扩展符与内容类型保持不变,仍然为".html"或".htm"
-
DOCTYPE声明
- 不区分大小写
指定字符集编码
-
可省略标记的元素
- 不允许写结束标记的元素:br、col、embed、hr、img、input、、link、meta
-
可以省略结束标记的元素:
- li、dt、dd、p、option、colgroup、thead、tbody、tfoot、tr、td、th
可以省略全部标记的元素:html、head、body、colgroup、tbody
属性值可以使用双引号,也可以使用单引号。
语义化标签
在HTML 5出来之前,我们用div来表示页面章节,但是这些div都没有实际意义。(即使我们用css样式的id和class形容这块内容的意义)。这些标签只是我们提供给浏览器的指令,只是定义一个网页的某些部分。但现在,那些之前没“意义”的标签因为因为html5的出现消失了,这就是我们平时说的“语义”。
- section元素 表示页面中的一个区块
- article元素 表示一块与上下文无关的独立的内容
- aside元素 在article之外的,与article内容相关的辅助信息
- header元素 表示页面中一个内容区块或整个页面的标题
- footer元素 表示页面中一个内容区块或整个页面的脚注
- nav元素 表示页面中导航链接部分
- figure元素 表示一段独立的内容,使用figcaption元素为其添加标题(第一个或最后一个子元素的位置)
- main元素 表示页面中的主要的内容(ie不兼容)
- hgroup标题的一个分组
- mark定义高亮显示的文本(span)ccs
- time时间
- dialog标记定义一个对话框(会话框)类似微信
多媒体标签
-
属性
- controls属性:如果出现该属性,则向用户显示控件,比如播放按钮。
- autoplay属性:如果出现该属性,则视频在就绪后马上播放。
- loop属性:重复播放属性。
- muted属性:静音属性。
- poster属性:规定视频正在下载时显示的图像,直到用户点击播放按钮。
source
HTML5表单
- 新增type类型
Type=“email” 限制用户必须输入email类型
Type=“url” 限制用户必须输入url类型
Type=“range” 产生一个滑动条表单
Type=“number” 限制用户必须输入数字
Type=“search” 产生一个搜索意义的表单
Type=“color” 生成一个颜色选择的表单
Type=“time” 限制用户必须输入时间类型
Type=“month” 限制用户必须输入月类型
Type=“week” 限制用户必须输入周类型
Type=“datetime-local” 选取本地时间
type=”date” - 新增表单属性
required 监测是否为空。
min 最小
max 最大
step 步幅 确定一个法定值。 -3 0 3 6 9
list 必须结合datalist标签,绑定datalist id名称。
autocomplete 是否自动提示信息 属性值 on off
placeholder 文本框的提示信息
autofocus 自动聚焦。一个页面只能由一个。
pattern 后面的属性值是一个正则表达式。
novalidate 取消验证
multiple 选择(上传)多个 - 新增表单标签
output
datalist 必须和list属性结合使用。做提示信息。
CSS3
CSS3是css技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括: 盒子模型、列表模块、超链接方式 、语言模块 、背景和边框 、文字特效 、多栏布局等。
css3的优点:CSS3将完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。网络浏览器也还将继续支持CSS2。对我们来说,CSS3主要的影响是将可以使用新的可用的选择器和属性,这些会允许实现新的设计效果(譬如动态和渐变),而且可以很简单的设计出现在的设计效果(比如说使用分栏)
渐进增强
渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验
从小到大
优雅降级
优雅降级 Graceful Degradation:一开始就构建站点的完整功能,然后针对浏览器测试和修复。比如一开始使用 CSS3 的特性构建了一个应用,然后逐步针对各大浏览器进行 hack 使其可以在低版本浏览器上正常浏览。
从大到小
渐进增强 & 优雅降级
区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。
CSS3选择符
- 属性选择器
1、E[attr]:只使用属性名,但没有确定任何属性值
2、E[attr=“value”]:指定属性名,并指定了该属性的属性值
3、E[attr~=“value”]:指定属性名,并且具有属性值,此属性值是一个词列表,并且以空格隔开,其中词列表中包含了一个value词,而且等号前面的“〜”必须的
4、E[attr^=“value”]:指定了属性名,并且有属性值,属性值是以value开头的
5、E[attr$=“value”]:指定了属性名,并且有属性值,而且属性值是以value结束的
6、E[attr*=“value”]:指定了属性名,并且有属性值,而且属值中包含了value - 7、E[attr|=“value”]:指定了属性名,并且属性值仅是value或者以“value-”开头的值(比如说left-con)
伪类选择器
- 结构性伪类选择器
X:first-child 匹配子集的第一个元素。IE7就可以支持
X:last-child匹配父元素中最后一个X元素
X:nth-child(n)用于匹配索引值为n的子元素。索引值从0开始
X:only-child这个伪类一般用的比较少,比如上述代码匹配的是div下的有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。
X:nth-last-child(n)从最后一个开始算索引。
**X:first-of-type**匹配同级兄弟元素中的第一个X元素
**X:last-of-type**匹配同级兄弟元素中的最后一个X元素
**X:nth-of-type(n)**匹配同类型中的第n个同级兄弟元素X
**X:only-of-type**匹配属于同类型中唯一兄弟元素的X
**X:nth-last-of-type(n)** 匹配同类型中的倒数第n个同级兄弟元素X
**:root**匹配文档的根元素。在HTML(标准通用标记语言下的一个应用)中,根元素永远是HTML
**X:empty**匹配没有任何子元素(包括包含文本)的元素X
目标伪类
目标伪类选择器
E:target 选择匹配E的所有元素,且匹配元素被相关URL指向
UI 元素状态伪类选择器
E:enabled
匹配所有用户界面(form表单)中处于可用状态的E元素
E:disabled
匹配所有用户界面(form表单)中处于不可用状态的E元素
E:checked
匹配所有用户界面(form表单)中处于选中状态的元素E
E::selection
匹配E元素中被用户选中或处于高亮状态的部分-
动态伪类选择器
E:link
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上
E:visited
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上E:hover
用户行为选择器
选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hoverE:active
用户行为选择器
选择匹配的E元素,且匹配元素被激活。常用于链接描点和按钮上E:focus
用户行为选择器
选择匹配的E元素,而且匹配元素获取焦点
- 层级选择器
E>F
子选择器
选择匹配的F元素,且匹配的F元素所匹配的E元素的子元素
E+F
相邻兄弟选择器
选择匹配的F元素,且匹配的F元素紧位于匹配的E元素的后面
E~F
通用选择器
选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素
CSS3属性
文本阴影属性
- text-shadow
- 说明:水平、垂直阴影的位置允许负值
可进行多阴影设置(逗号分隔的方式)
文本换行
Word-wrap
属性用来标明是否允许浏览器在单词内进行断句,这是为了防止当一个字符串太长而找不到它的自然断句点时产生溢出现象。
属性值:
normal
说明:只在允许的断字点换行(浏览器保持默认处理)
break-word
说明:属性允许长单词或 URL 地址换行到下一行
Word-break
属性值:
break-all
说明:它断句的方式非常粗暴,它不会尝试把长单词挪到下一行,而是直接进行单词内的断句
Keep-all
说明:文本不会换行,只能在半角空格或连字符处换行
@font-face
@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,随着@font-face模块的出现,我们在Web的开发中使用字体不怕只能使用Web安全字体(@font-face这个功能早在IE4就支持)
@font-face的语法规则:
@font-face {
font-family: ;
src: