html5 css3新特性

HTML5

html5新特性特点:

1、语法更简单

2、标签的语义化

3、语法更宽松

4、多设备跨平台

5、自适应网页设计

一、语义化标签

1、<header></header> 头部标签

2、<nav></nav> 导航标签

3、<article></article> 内容标签

4、<section></section> 定义文档某个区域

5、<aside></aside> 侧边栏标签

6、<footer></footer>  尾部标签

7、其他标签 

main 主要区域(只能有一个)menu 菜单 figure 独立块  figcaption独立块元素标题 

二、多媒体标签

1、<video></video>视频标签

属性

src 路径url

controls  播放控件(必须有这个属性,不然视频控件不会出现)

width/height   设置宽高

muted  静音播放  tautoplay(可静音播放)

loop  循环播放

poster  加载等待图片画面

preload   预加载 auto(自动)none(不加载)

2、<audio></audio>音频标签

属性

src 路径url

controls  播放控件(必须有这个属性,不然音频控件不会出现)

autoplay  自动播放 (除去IE都禁用)

loop  循环播放

解决不同浏览器对音频格式兼容问题

<audio controls>

Chrome

    <audio src="xxx.mp3" type="audio/mpeg"></audio>Chrome、IE9、Safari支持

    <audio src="xxx.ogg" type="audio/ogg"></audio>Chrome、Firefox、IE9、Opera支持

</audio>

三、表单控件

表单新类型

<input type="xx" name="" id="">

xx内可添加新类型

email 邮箱

tel  电话

number 数字

placeholder  占位符

max length  最大的长度

date  日期

length  长度

month  月份

表单新属性

required  表单内容不能为空

multiple  可以添加控件的时候,选择多个文件上传

autofocus 页面打开全自动聚焦到表单

outocomplete=“off”   自动补全用户搜索过的内容,但一般关闭,必须加上name

四、用于绘画 canvas 元素。

canvas元素是HTML5中新添加的一个元素,该元素是HTML5中的一个亮点。

Canvas元素就像一块画布,通过该元素自带的API结合JavaScript代码可以绘制各种图形和图像以及动画效果。

canvas绘制的基本步骤:

第一步:获得上下文 =>canvasElem.getContext('2d');

第二步:开始路径规划 =>ctx.beginPath()

第三步:移动起始点 =>ctx.moveTo(x, y)

第四步:绘制线(线条、矩形、圆形、图片...) =>ctx.lineTo(x, y)

第五步:闭合路径 =>ctx.closePath();

第六步:绘制描边 =>ctx.stroke();

canvas绘制一个三角形。

五、本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;sessionStorage 的数据在浏览器关闭后自动删除。

H5提供了二种本地存储方法:sessionStorage和localStorage,下面分别介绍一下:

1.sessionStorage:保存的是一个会话的数据,也就是说只在一次会话中有效,关闭就会销毁数据,不是持久的本地数据存储,只是一个会话的存储;

2.localStorage:本地数据持久化存储,在操作上和第一种没有什么区别,只是存储时间上不同。

第一步:基本操作。

1.把value存储到key字段:.setItem( key, value)。

sessionStorage.setItem("key","value");

localStorage.setItem("key","value");

2.获取指定key本地存储的值:.getItem(key)。

varvalue=sessionStorage.getItem("key");

varvalue=localStorage.getItem("key");

3.删除指定key本地存储的值:.removeItem( key)。

sessionStorage.removeItem("key");

localStorage.removeItem("key");

4.清除所有的key/value:.clear()。

sessionStorage.clear();

localStorage.clear();

第二步:其它操作。

storage除了可以用上面说到的方法获取和存储数据,还可以和普通的对象一样,使用点操作和[]来控制数据(下面以localStorage为例子):

可以通过storage的key()和length实现数据的遍历:

第三步:storage事件(针对localStorage)。

localStorage提供了一个事件storage,当键值改变或者clear的时候,就可以触发storage事件(注册storage和改变值要在不跨域的情况下存在于二个页面),如下面的例子:

把页面A.html和B.html放正同一个域名下的HTTP服务器里,先打开A.html页面,再打开B.html页面,就可以看见效果了。

上面A.html注册事件的event对象一共有下面几个属性:

1.key:字符串类型,表示被修改,删除或添加的条目的key值;

2.oldValue:表示之前的值,如果是添加一个条目就返回null;

3.newValue:表示现在的新值,如果是添加一个条目就返回null;

4.url/uri:字符串类型,表示触发这个事件的页面地址。

六、地理定位  (高德 百度 谷歌)

Geolocation(地理定位)用于定位用户的位置,获得用户的地理位置。

鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。

请使用 getCurrentPosition() 方法来获得用户的位置。

下例是一个简单的地理定位实例,可返回用户位置的经度和纬度。

七、拖拽

1.简介

(1)蓝图

拖动源

放置目标

拖放并不是单纯的把目标从一个地方移动另一个地方,其实是促成成功交互的操作过程中的反馈。

光标指示当前的位置是否可防置目标

用户提示是移动、链接或者复制

鼠标经过的地方样式改变,提示此处可以放置。

为满足以上的要求,浏览器在拖拽的每个过程中发起一系列的事件。

数据传输:一组对象,这个对象用来公开存储,拖动数据存储是拖放操作的基础。可以将传输数据理解成拖放的中央控制部分,用于反馈的图片以及数据自身的检索全部都在数据传输中管理。类似网络传输谈判,此时根本无需让拖动源和放置目标知道彼此的存在。此时其重要作用的就是MIME类型!

(2)MIME 多功能因特网邮件扩展服务

text/plain

image/png

image/jpeg

text/x-age 传递自定义的信息类型

事件

事件捕获:从父辈–→中间–→子辈

事件冒泡:反向

event.stopPropagation //阻止事件沿事件捕获链向下传递 或者 通过冒泡阶段向上传递。

event.preventDefault //阻止事件的默认行为,比如链接跳转。

2.H5拖拽的7个事件分别是

ondragstart 只能在这个事件的过程中支持dataTransfer通过setData来设置数据。这是为了安全考虑。编号1

ondrag 拖动过程中持续发生的事件。就是鼠标移动的过程中会反复的调用此事件。编号2

ondragenter 拖动跨入了页面中新元素的时候触发,适用于设置拖放的放置反馈。编号3

ondragleave 恢复放置反馈,与上一事件相对。编号4

ondragover 不同于drag事件,此事件是在当前鼠标停留的目标上调用。编号5

ondrop 释放鼠标调用,要放置包含处理放置动作的代码。编号6

ondragend 在拖动源中触发,适合清空拖动过程的状态。编号7

3.设置、传输和控制

设置可以拖动,很简单就一句话

八、WebSocket:时时通讯

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。


浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。以下 API 用于创建 WebSocket 对象。

var Socket = new WebSocket(url, [protocol] );

以上代码中的第一个参数 url, 指定连接的 URL。第二个参数 protocol 是可选的,指定了可接受的子协议。

CSS3

一、边框

1、圆角边框:border-radius

参数:border-radius(左上,右上,左下,右下) /*值为百分比和像素值*/

2、盒子阴影:box-shadow

参数:box-shadow(水平阴影位置(必填),垂直阴影位置(必填),模糊距离    ,阴影的尺寸,阴影颜色,外部阴影改为内部阴影(默认为外部阴影))

二、背景

1、背景图片:background-image

参数:background-image:url()

2、背景图片大小:background-size

background-size:宽 高

三、文本属性

1、文本阴影:text-shadow

   参数:text-shadow: (水平阴影,垂直阴影,模糊的距离,阴影的颜色)

2、文本溢出:text-overflow

参数:text-overflow: clip | ellipsis | string; /*clip (修剪文本) ellipsis(显示省略符号来代表被修剪的文本)string(使用给定的字符串来代表被修剪的文本)   */

3、换行:word-wrap

参数:word-wrap: normal | break-word /*normal (只在允许的断字点换行(浏览器保持默认处理)break-word(在长单词或 URL 地址内部进行换行))  */

4、设置字体:@font-face

  参数


四、2D转换

1、移动:transform

参数:transform:translate(x轴移动距离,y轴移动距离)

五、过度

1、过度:transition

    1.1、参数:transition:要过渡的属性 花费时间 运动曲线 何时开始

六、选择器

1、属性选择器

2、结构伪类选择器

3、伪类选择器

八、函数

1、计算盒子宽高:width/height:calc()

    1.1、参数:width:calc(100%-80px)

九、透明度

语法:  opacity: value|inherit;

十、弹性盒子

弹性盒子是 CSS3 的一种新的布局模式。

CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。

引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

CSS3 弹性盒子内容

弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。

弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。

弹性容器内包含了一个或多个弹性子元素。

注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子只定义了弹性子元素如何在弹性容器内布局。

弹性子元素通常在弹性盒子内一行显示。默认情况每个容器只有一行。

以下元素展示了弹性子元素在一行内显示,从左到右:


flex-direction

flex-direction 属性指定了弹性子元素在父容器中的位置。

语法:

flex-direction: row | row-reverse | column | column-reverse

flex-direction的值有:

row:横向从左到右排列(左对齐),默认的排列方式。

row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。

column:纵向排列。

column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。

以下实例演示了 column 的使用:

justify-content 属性

内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。

justify-content 语法如下:

justify-content: flex-start | flex-end | center | space-between | space-around

各个值解析:

flex-start:

弹性项目向行头紧挨着填充。这个是默认值。第一个弹性项的main-start外边距边线被放置在该行的main-start边线,而后续弹性项依次平齐摆放。

flex-end:

弹性项目向行尾紧挨着填充。第一个弹性项的main-end外边距边线被放置在该行的main-end边线,而后续弹性项依次平齐摆放。

center:

弹性项目居中紧挨着填充。(如果剩余的自由空间是负的,则弹性项目将在两个方向上同时溢出)。

space-between:

弹性项目平均分布在该行上。如果剩余空间为负或者只有一个弹性项,则该值等同于flex-start。否则,第1个弹性项的外边距和行的main-start边线对齐,而最后1个弹性项的外边距和行的main-end边线对齐,然后剩余的弹性项分布在该行上,相邻项目的间隔相等。

space-around:

弹性项目平均分布在该行上,两边留有一半的间隔空间。如果剩余空间为负或者只有一个弹性项,则该值等同于center。否则,弹性项目沿该行分布,且彼此间隔相等(比如是20px),同时首尾两边和弹性容器之间留有一半的间隔(1/2*20px=10px)。

align-items 属性

align-items 设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式。

语法

align-items: flex-start | flex-end | center | baseline | stretch

各个值解析:

flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。

baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。

stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。

以下实例演示了 center 的使用:

flex-wrap 属性

flex-wrap 属性用于指定弹性盒子的子元素换行方式。

语法

flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;

各个值解析:

nowrap - 默认, 弹性容器为单行。该情况下弹性子项可能会溢出容器。

wrap - 弹性容器为多行。该情况下弹性子项溢出的部分会被放置到新行,子项内部会发生断行

wrap-reverse -反转 wrap 排列。

以下实例演示了 wrap 的使用:

align-content 属性

align-content 属性用于修改 flex-wrap 属性的行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。

语法

align-content: flex-start | flex-end | center | space-between | space-around | stretch

各个值解析:

stretch - 默认。各行将会伸展以占用剩余的空间。

flex-start - 各行向弹性盒容器的起始位置堆叠。

flex-end - 各行向弹性盒容器的结束位置堆叠。

center -各行向弹性盒容器的中间位置堆叠。

space-between -各行在弹性盒容器中平均分布。

space-around - 各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。

以下实例演示了 center 的使用:


弹性子元素属性

align-self

align-self 属性用于设置弹性元素自身在侧轴(纵轴)方向上的对齐方式。

语法

align-self: auto | flex-start | flex-end | center | baseline | stretch

各个值解析:

auto:如果'align-self'的值为'auto',则其计算值为元素的父元素的'align-items'值,如果其没有父元素,则计算值为'stretch'。

flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。

baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。

stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。

十一、媒体查询

使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。

当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

CSS 语法:

@media mediatype and|not|only (media feature) {

CSS-Code;

}

媒体类型

使用 @media 查询来制作响应式设计:

十二、语音

css设置标签内容语音朗读

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,137评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,824评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,465评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,131评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,140评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,895评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,535评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,435评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,952评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,081评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,210评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,896评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,552评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,089评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,198评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,531评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,209评论 2 357

推荐阅读更多精彩内容