一、HTML5新增语义化标签
HTML4.01 --> HTML5
HTML4.01 --> XHTML1.0 (Xml + html4.01) 语法更加严格。
1)语法的区别:XHTML和HTML5
1、内容类型(ContentType)
HTML5的文件扩展符与内容类型保持不变,仍然为".html"或".htm"
2、DOCTYPE声明
<!DOCTYPE html>不区分大小写
XHTML -- > <!DOCTYPE html>
HTML5 -- > <!DOCTYPE html> 不区分大小写
3、指定字符集编码
<meta charset="UTF-8">
4、可省略标记的元素
不允许写结束标记的元素:br、col、embed、hr、img、input、、link、meta
XHTML -- > <br />
HTML5 -- > <br>
5、可以省略结束标记的元素:
XHTML -- > <div></div>
HTML5 -- > <div> <option>
li、dt、dd、p、option、colgroup、thead、tbody、tfoot、tr、td、th
6、可以省略全部标记的元素:html、head、body、colgroup、tbody
7、属性值可以使用双引号,也可以使用单引号。
XHTML -- > <input type="text" />
<input type="checkbox" checked="checked" />
HTML5 -- > <input type='text'>
<input type="checkbox" checked />
注:不建议省略标签和省略号。
2) 语义化标签
<div class="header"></div>
<ul class="nav"><ul>
<div class="main"></div>
<div class="footer"></div>
<header></header> 页眉
<main></main> 主体
<nav></nav>
<footer></footer> 页脚
1、section元素 表示页面中的一个区块或者区域 (同div效果)
2、article元素 表示一块与上下文无关的独立的内容
3、aside元素 在article之外的,与article内容相关的辅助信息
4、header元素 表示页面中一个内容区块或整个页面的标题(页眉);
5、footer元素 表示页面中一个内容区块或整个页面的脚注
6、nav元素 表示页面中导航链接部分
7、figure元素 表示一段独立的内容,使用figcaption元素为其添加标题(第一个或最后一个子元素的位置)
8、main元素 表示页面中的主要的内容(ie不兼容)
注:一个页面内 ,只能出现一个main标签;(ie不兼容)
9、hgroup标题的一个分组
10、mark定义高亮显示的文本(span) 内联
11、time时间 (目前所有主流浏览器都不支持 <time> 标签。)内联
12、dialog标记定义一个对话框(会话框)类似微信( 目前只有 Chrome 和 Safari 6 支持 <dialog> 标签。)
13、embed 标记定义外部的可交互的内容或插件 比如flash ;
3)多媒体标签
<video src=""></video> 视频
<audio src=""></audio> 音频
Type属性值:
用于视频:video/ogg video/mp4 video/webm
用于音频:audio/ogg audio/mpeg(mp3) audio/mav
ie : 支持:map4 不支持:ogg
谷歌: 不支持 :map4 支持 :ogg
属性:
controls属性:如果出现该属性,则向用户显示控件,比如播放按钮。
autoplay属性:如果出现该属性,则视频在就绪后马上播放。
注:有的浏览器为了用户体验 不支持自动播放了;
loop属性:重复播放属性。
muted属性:静音属性。
注:autoplay + muted 可以实现自动播放
poster属性:规定视频正在下载时显示的图像,直到用户点击播放按钮。
注:音频标签不支持此属性
object-fit: cover; 可以让视频覆盖整个父容器。
source:
<source> 标签为媒介元素(比如 <video> 和 <audio>)定义媒介资源。
<source> 标签允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持;
4)H5表单元素
新增type类型:
Type=“email” 限制用户必须输入email类型
Type=“url” 限制用户必须输入url类型,“http://”
Type=“range” 产生一个滑动条表单
Type=“number” 产生一个数字意义表单
Type=“search” 产生一个搜索意义的表单
Type=“color” 生成一个颜色选择的表单
Type=“time” 限制用户必须输入时间类型
Type=“month” 限制用户必须输入月类型
Type=“week” 限制用户必须输入周类型
Type=“datetime-local” 选取本地时间
type=”date” 限制用户必须输入日类型
表单输出框:
<output></output>
<form action="" oninput="x.value=parseInt(a.value)+parseInt(b.value)">
<input id="a" type="range" min="0" max="100">100+
<input id="b" type="text" value="50">=
<output name="x" for="a b"></output>
</form>
datalist 下拉菜单框: 必须和list属性结合使用。做提示信息。
<input type="url" list="url_list" name="link" />
<datalist id="url_list">
<option label="W3School" value="http://www.W3School.com.cn" />
<option label="Google" value="http://www.google.com" />
<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>
表单属性:
新增表单属性
required 监测是否为空。
min 最小
max 最大
step 步幅 确定一个法定值。0 3 6 9 (不能写负值)
list 必须结合datalist标签,绑定datalist id名称。
autocomplete 是否自动提示信息 属性值 on 打开 ;off 关闭 (是否有缓存)
注:默认值是on ;
placeholder 文本框的提示信息
autofocus 自动聚焦。一个页面只能由一个。
pattern 后面的属性值是一个正则表达式。(js)
novalidate 取消验证
multiple 选择(上传)多个
三、css3
CSS3是css技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括: 盒子模型、列表模块、超链接方式 、语言模块 、背景和边框 、文字特效 、多栏布局等。
css3的优点:CSS3将完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。网络浏览器也还将继续支持CSS2。对我们来说,CSS3主要的影响是将可以使用新的可用的选择器和属性,这些会允许实现新的设计效果(譬如动态和渐变),而且可以很简单的设计出现在的设计效果(比如说使用分栏)
概念:
渐进增强 :
渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验
优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容
区别:优雅降级是从复杂的现状开始,并试图减少用户体验的供给,而渐进增强则是从一个非常基础的,能够起作用的版本开始,并不断扩充,以适应未来环境的需要。降级(功能衰减)意味着往回看;而渐进增强则意味着朝前看,同时保证其根基处于安全地带。
CSS3选择符:
1、属性选择器:
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)
<style>
input[value|="a"]{color:#ff0;}
</style>
<input value=“a” > 只有al
<input value=“a-” > 以al- 开头的
2、伪类选择器
1)结构性伪类选择器
X:first-child 匹配子集的第一个元素。IE7就可以支持
X:last-child 匹配父元素中最后一个X元素
X:nth-child(n) 用于匹配索引值为n的子元素。索引值从1开始
X:only-child 这个伪类一般用的比较少,比如上述代码匹配的是div下的有且仅有一个的p,也就是说,如果div内有多个p,将不匹配。 (唯一的一个子元素)
X:nth-last-child(n) 从最后一个开始算索引。
注:(n) 括号里可以指定参数值,也可以写表达式
如:2n \2n+1 \ odd \even
位置和标签都要匹配上
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指向 (如:锚点链接)
+ 动态伪类选择器
E**:link**
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上
E**:visited**
链接伪类选择器
选择匹配的E元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上
E**:active**
用户行为选择器
选择匹配的E元素,且匹配元素被激活。常用于链接描点和按钮上
E:**hover**
用户行为选择器
选择匹配的E元素,且用户鼠标停留在元素E上。IE6及以下浏览器仅支持a:hover
E:**focus**
用户行为选择器
选择匹配的E元素,而且匹配元素获取焦点
UI 元素状态伪类选择器
E:enabled
匹配所有用户界面(form表单)中处于可用状态的E元素
E:disabled
匹配所有用户界面(form表单)中处于不可用状态的E元素
E:checked
匹配所有用户界面(form表单)中处于选中状态的元素E
默认选中: checked 禁用:disabled 可用:enabled
E::selection
匹配E元素中被用户选中或处于高亮状态的部分
层级选择器
E>F
子选择器
选择匹配的F元素,且匹配的F元素所匹配的E元素的子元素
E+F
相邻兄弟选择器(找后面的相邻的第一个同辈元素)
选择匹配的F元素,且匹配的F元素紧位于匹配的E元素的后面
E~F
通用选择器 (找后面的所有同辈元素)
选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素