GVKun编程网logo

html5和CSS3中新特性(html5和css3新特性有哪些)

29

在本文中,我们将带你了解html5和CSS3中新特性在这篇文章中,我们将为您详细介绍html5和CSS3中新特性的方方面面,并解答html5和css3新特性有哪些常见的疑惑,同时我们还将给您一些技巧,

在本文中,我们将带你了解html5和CSS3中新特性在这篇文章中,我们将为您详细介绍html5和CSS3中新特性的方方面面,并解答html5和css3新特性有哪些常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的HTML5 & CSS3初学者指南(3) – HTML5新特性、HTML5 & CSS3初学者指南(3) �C HTML5新特性、html5 css3实例教程 一款html5和css3实现的小机器人走路动画_html5教程技巧、Html5 与CSS3中的新特性

本文目录一览:

html5和CSS3中新特性(html5和css3新特性有哪些)

html5和CSS3中新特性(html5和css3新特性有哪些)

H5

1、语义化标签

header、footer、aside、nav、section、article

2、表单输入类型

email、url、number、range、Date Pickers、search、color

3、表单属性

autocomplete、placeholder、form

4、视频音频

video、audio

5、画布

canvas

6、伸缩矢量图

svg

7、拖拽属性

draggable

8、事件

resize、input

9、地理定位

Geolocation

10、web存储

sessionStorage和localStorage

11、应用程序缓存application cache

创建cache manifest文件

12、文件通讯协议

websocket

13、文件读取

fileReader

14、类名操作

classlist

CSS3

1、选择器

:nth-child()

:nth-of-type()

:checked

:disabled

2、盒模型

Box-sizing

3、背景

background-image、background-size、background-origin

4、渐变

linear-gradient、radial-gradient

5、边框

border-radius、border-image

6、阴影

Box-shadow、text-shadow

7、2D/3D转换

transform: translate rotate scale skew

8、过渡

transition

9、动画

keyframes、animation

10、弹性盒子

flex

11、媒体查询

@media

HTML5 & CSS3初学者指南(3) – HTML5新特性

HTML5 & CSS3初学者指南(3) – HTML5新特性

介绍

本文介绍了 HTML5 的一些新特性。主要包含以下几个方面:

  • Web 存储

  • 地理位置

  • 拖放

  • 服务器发送事件

 

Web存储

HTML5 Web 存储的设计与构想是一个更好的机制来存储客户端的网络数据。它是通过一个网络浏览器作为客户端数据库实现的,它允许网页以键值对的形式来存储数据。

它具有以下特征:

  • 每个原始网站/域最多可存储 5MB 的数据。

  • 你可以通过属性和方法来使用 JavaScript 操作 web 存储器中的数据实现访问。

  • 就像 cookies,你可以选择将保持数据(维持),即使你已经离开了该网站,关闭了浏览器选项卡,退出了浏览器或关闭了计算机。

  • 不像 cookies 这种由服务器端脚本创建的,web存储是由客户端脚本如 JavaScript 创建。

  • 不像 cookies,web 存储中的数据不会自动伴随服务器端每一次 HTTP 请求。

  • Web 存储在主流的 Web 浏览器中都是原生支持的,如 Chrome,Opera,Firefox,Safari 和 IE8 +。换句话说,不需要第三方插件。

网络存储提供了2种不同的存储区域- 会话存储和本地存储 –它们在范围和时限有所不同,需要在不同情况下使用。

 

会话存储

会话存储,数据以字符串的形式进行存储,只会持续在当前的会话。当浏览器窗口关闭时,数据将会被删除。会话存储是专门用于同一个用户在不同的浏览器中使用相同的网站同时进行多个事务的情况。每一个浏览器窗口中的事务会获取它们自己会话存储的备份,这些会话备份是和其它浏览器窗口中的另一个事务不同的。当用户关闭浏览器窗口时,隶属于这个窗口的会话存储数据将会继续存在。以这种方式,事务数据不会从一个浏览器窗口泄露到另一个窗口。会话存储就是cookies确定的解决方案,正如 HTML5 Web存储规格 陈述的:

引用:

“如果用户使用相同的站点在两个不同的窗口购买了飞机票。如果站点使用 Cookie 来跟踪用户已购买的票据,则当用户从两个窗口点击页面跳转时,当前正在购买的票将会从一个窗口“泄漏”到另一个,从而可能导致用户在没意识到的情况下,为同一个航班够买了两张票。

会话存储必须用于处理机密和敏感信息的网络活动,如信用卡号码,社会保险号码和登录证书。这些信息很容易受到“DNS欺骗”的攻击,所以不应该存储超过一个单个会话。”

如何创建并访问一个 sessionStorage:

<script type="text/javascript">

sessionStorage.lastname="Smith";

document.write(sessionStorage.lastname);

</script>

 

本地存储

本地存储,数据以字符串的形式进行存储,并且会一直持续下去(除非你明确地删除它)。即使浏览器窗口关闭了数据也会一直存在,同时如果接下来对相同 origin 的访问使用的是相同的浏览器,那么数据也是可用的。本地存储是专为存储跨越多个浏览器窗口和持续的时间超过当前会话的数据。

不像桌面系统,Web 应用程序一直缺乏离线工作的能力。现在不一样了,HTML5 本地存储的出现,已经使脱机工作成为了可能。试想一下你正在填写一份多页的 Web 表单,或者撰写一篇文章时,截止日期已经迫在眉睫,突然发生网络故障中断。你将会失去你精心创建的所有数据。因为有了本地存储,你就可以继续离线工作,而 Web 应用程序会使用一些客户端脚本如 JavaScript 间歇性地将你的工作保存到本地存储。

一个网站可以让用户自定义网页的主题和布局,并在本地存储中保存这些设置。以这种方式,用户可以在后续访问中看到自己个人的网页。

如何创建和访问 localStorage:

<script type="text/javascript">

localStorage.lastname="Smith";

document.write(localStorage.lastname);

</script>

 

地理定位

HTML geolocation API 只有一个对象,就是 navigator.geolocation 对象。你可以将 navigator.geolocation 比作浏览器中的指南针。浏览器是否支持这个 API,还有待确认。你可以通过将以下的 if-else 写入到自己的代码中,来检测浏览器是否支持。

// Check whether browser supports Geolocation API or not
if (navigator.geolocation) // Supported
{
    // place the geolocation code here
}
else // Not supported
{
    alert("Oop! This browser does not support HTML5 Geolocation.");
}

navigator.geolocation 对象公开了3中方法 getCurrentPosition(),watchPosition(),和clearWatch()。

  • getCurrentPosition()

getCurrentPosition()方法用来获得用户的当前位置。

navigator.geolocation.getCurrentPosition(getPosition);
  • watchPosition()

watchPosition()方法与 getCurrentPosition()方法是几乎相同的。它们都返回当前位置信息并具有相同的方法签名 - 一个成功的回调函数,一个错误的回调函数和一个位置选项对象。唯一的区别在于, 一旦激活了点击按钮,getCurrentPosition()方法会返回位置信息;而 watchPosition()方法将继续获得位置信息,一旦用户设备的位置发生变化并在初始话激活之后。

该 watchPosition()方法会返回一个 watch ID,当不再需要获取位置时,可以用 watch ID 来停止 watchPositon()方法。

  • clearWatch()

clearWatch()方法以 watchPosition()方法的 watch ID 作为参数,用于停止执行 watchPosition()方法。

 

拖放

我们已经很熟悉拖放电脑桌面上的文件、文件夹和图标了。拖放是一种任何的桌面应用具有的强有力的也是理所当然应该具备的用户交互。使用像鼠标这样的指针设备,通过拖放来实现拷贝,插入和删除任何电脑桌面上的文件和对象。

HTML5 Drag and Drop API 提供了对浏览器拖放操作原生的支持,使得代码实现拖放变得更容易。

  • 设置元素为可拖放

首先,为了使元素可拖动,把 draggable 属性设置为 true :

<img draggable="true" />

  • 拖动什么

然后,规定当元素被拖动时,会发生什么。

在上面的例子中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。

dataTransfer.setData( ) 方法设置被拖数据的数据类型和值:

function drag(ev)
{
    ev.dataTransfer.setData("Text",ev.target.id);
}
  • 放到何处

ondragover 事件规定在何处放置被拖动的数据。

默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

这要通过调用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault()
  • 进行放置

当放置被拖数据时,会发生 drop 事件。

在上面的例子中,ondrop 属性调用了一个函数,drop(event):

function drop(ev)
{
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
}

 

服务器发送事件

传统的用户和网站之间的交互模式是用户发起的请求和应答类型。用户通过浏览器主动发起请求,并且等待服务器的应答。为了检查某个特定的网页上是否有更新,用户需要通过点击浏览器上更新/重新登录按钮来向服务器发送新的请求。换言之,服务器必须不间断的将服务器侧的更新推送出去。当信息不间断的无法预测的变化时,通过这种方式来获取一些关键的做决定的信息,就不是特别有用了。例如股票价格更新,新闻传递,天气预报等。

当信息到达时,HTML 服务器发送事件(SSE)使得服务器能够将信息发送(推送)到客户端,避免了服务器持续推送的需要。这也使得网站在不需要任何第三方插件的情况下,能够为客户端提供推送服务。

  • Server-Sent 事件 - 单向消息传递

Server-Sent 事件指的是网页自动获取来自服务器的更新。

以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。

  • 接收 Server-Sent 事件通知

EventSource 对象用于接收服务器发送事件通知:

var source=new EventSource("demo_sse.php");
source.onmessage=function(event)
{
   document.getElementById("result").innerHTML+=event.data + "<br />";
};

代码解释:  

  • 创建一个新的 EventSource 对象,然后规定发送更新的页面的 URL(本例中是 "demo_sse.php")
  • 每接收到一次更新,就会发生 onmessage 事件
  • 当 onmessage 事件发生时,把已接收的数据推入 id 为 "result" 的元素中

 

  • 检测 Server-Sent 事件支持

在上面的 TIY 实例中,我们编写了一段额外的代码来检测服务器发送事件的浏览器支持情况:

if(typeof(EventSource)!=="undefined")
{
   // Yes! Server-sent events support!
   // Some code.....
}
else
{
    // Sorry! No server-sent events support..
}
  • 服务器端代码实例

为了让上面的例子可以运行,您还需要能够发送数据更新的服务器(比如 PHP 和 ASP)。

服务器端事件流的语法是非常简单的。把 "Content-Type" 报头设置为 "text/event-stream"。现在,您可以开始发送事件流了。

PHP 代码 (demo_sse.php):

<?php
header(''Content-Type: text/event-stream'');
header(''Cache-Control: no-cache'');

$time = date(''r'');
echo "data: The server time is: {$time}\n\n";
flush();
?>

ASP 代码 (VB) (demo_sse.asp):

<%
Response.ContentType="text/event-stream"
Response.Expires=-1
Response.Write("data: " & now())
Response.Flush()
%>

代码解释:

  • 把报头 "Content-Type" 设置为 "text/event-stream"
  • 规定不对页面进行缓存
  • 输出发送日期(始终以 "data: " 开头)
  • 向网页刷新输出数据

总结

本文介绍的 HTML5 一些新特性就到这里,在后面一篇文章中,我们将会学习到 HTML5 的 Canvas 知识。。学习了 HTML5 的新特性,能够帮助我们在进行前端开发时更加顺利,同时也可以借助一些前端开发工具。Wijmo 是一款大而全面的前端 HTML5 / JavaScript UI控件集,能为企业应用提供更加灵活的操作体验,现已全面支持Angular 2。

HTML5 & CSS3初学者指南(3) �C HTML5新特性

HTML5 & CSS3初学者指南(3) �C HTML5新特性

总结

以上是小编为你收集整理的HTML5 & CSS3初学者指南(3) �C HTML5新特性全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

html5 css3实例教程 一款html5和css3实现的小机器人走路动画_html5教程技巧

html5 css3实例教程 一款html5和css3实现的小机器人走路动画_html5教程技巧

  之前介绍了好多款html5和css3实现的动画,今天要给大家带来一款html5和css3实现的小机器人走路动画。该实例的人物用html5绘画的,动画效果是html5和css3实现的。一起看下效果图。

  实现的代码。

  html代码:


复制代码
代码如下:
x="0px" y="0px" viewbox="0 0 458 337" enable-background="new 0 0 458 337" xml:space="preserve">























































y1="180.6" x2="266.4" y2="181.7" />
y1="177.4" x2="288.4" y2="164.6" />
r="3.8" />
r="3.8" />










gradientunits="userSpaceOnUse">




  css3代码:

立即学习“前端免费学习笔记(深入)”;


复制代码
代码如下:
html {
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*, *:before, *:after {
-moz-box-sizing: inherit;
box-sizing: inherit;
}

html,body {
height:100%;
margin: 0;
font: 40px/40px "Helvetica Neue";
font-weight: 900;
color: rgba(255, 255, 255, 1);
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
}

svg {
width: 100%;
height: 100%;
}

#left-eye {
-webkit-transform-origin: 283px 176px;
-ms-transform-origin: 283px 176px;
transform-origin: 283px 176px;
/*animation: pulse 2s linear infinite;*/
}
#head {
-webkit-transform-origin: 235px 173px;
-ms-transform-origin: 235px 173px;
transform-origin: 235px 173px;
-webkit-animation: head 2s ease-in-out infinite;
animation: head 2s ease-in-out infinite;
}

#right-eyebrow, #left-eyebrow {
-webkit-animation: eyebrows 10s linear infinite;
animation: eyebrows 10s linear infinite;
}

#left-leg {
-webkit-transform-origin: 253px 225px;
-ms-transform-origin: 253px 225px;
transform-origin: 253px 225px;
-webkit-animation: leftleg 2s ease-in-out infinite;
animation: leftleg 2s ease-in-out infinite;
}

#right-leg {
-webkit-transform-origin: 225px 235px;
-ms-transform-origin: 225px 235px;
transform-origin: 225px 235px;
-webkit-animation: rightleg 2s ease-in-out infinite;
animation: rightleg 2s ease-in-out infinite;
}
#left-arm {
-webkit-transform-origin: 263px 186px;
-ms-transform-origin: 263px 186px;
transform-origin: 263px 186px;
-webkit-animation: leftarm 2s ease-in-out infinite;
animation: leftarm 2s ease-in-out infinite;
}

#right-arm {
-webkit-transform-origin: 209px 214px;
-ms-transform-origin: 209px 214px;
transform-origin: 209px 214px;
-webkit-animation: rightarm 2s ease-in-out infinite;
animation: rightarm 2s ease-in-out infinite;
}
#hair {
-webkit-filter: hue-rotate(45deg);
filter: hue-rotate(45deg); /* izza not workingz! */
}


@-webkit-keyframes leftleg {
0%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50%{
-webkit-transform: rotate(55deg);
transform: rotate(55deg);
}
100%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}


@keyframes leftleg {
0%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50%{
-webkit-transform: rotate(55deg);
transform: rotate(55deg);
}
100%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}

@-webkit-keyframes rightleg {
0%{
-webkit-transform: rotate(25deg);
transform: rotate(25deg);
}
50%{
-webkit-transform: rotate(-40deg);
transform: rotate(-40deg);
}
100%{
-webkit-transform: rotate(25deg);
transform: rotate(25deg);
}
}

@keyframes rightleg {
0%{
-webkit-transform: rotate(25deg);
transform: rotate(25deg);
}
50%{
-webkit-transform: rotate(-40deg);
transform: rotate(-40deg);
}
100%{
-webkit-transform: rotate(25deg);
transform: rotate(25deg);
}
}

@-webkit-keyframes rightarm {
0%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50%{
-webkit-transform: rotate(40deg);
transform: rotate(40deg);
}
100%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}

@keyframes rightarm {
0%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50%{
-webkit-transform: rotate(40deg);
transform: rotate(40deg);
}
100%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}

@-webkit-keyframes leftarm {
0%{
-webkit-transform: rotate(50deg);
transform: rotate(50deg);
}
50%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100%{
-webkit-transform: rotate(50deg);
transform: rotate(50deg);
}
}

@keyframes leftarm {
0%{
-webkit-transform: rotate(50deg);
transform: rotate(50deg);
}
50%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100%{
-webkit-transform: rotate(50deg);
transform: rotate(50deg);
}
}

@-webkit-keyframes head {
0%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50%{
-webkit-transform: rotate(-5deg);
transform: rotate(-5deg);
}
100%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}

@keyframes head {
0%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50%{
-webkit-transform: rotate(-5deg);
transform: rotate(-5deg);
}
100%{
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
}


@-webkit-keyframes pulse {
0%{
-webkit-transform: scale(1);
transform: scale(1);
}
50%{
-webkit-transform: scale(1.1);
transform: scale(1.1);
}
100%{
-webkit-transform: scale(1);
transform: scale(1);
}
}


@keyframes pulse {
0%{
-webkit-transform: scale(1);
transform: scale(1);
}
50%{
-webkit-transform: scale(1.1);
transform: scale(1.1);
}
100%{
-webkit-transform: scale(1);
transform: scale(1);
}
}

@-webkit-keyframes eyebrows {
0%{

}
98%{
-webkit-transform: translate(0, 0px);
transform: translate(0, 0px);
}
99%{
-webkit-transform: translate(0, -5px);
transform: translate(0, -5px);
}
100%{
-webkit-transform: translate(0, 0px);
transform: translate(0, 0px);
}
}

@keyframes eyebrows {
0%{

}
98%{
-webkit-transform: translate(0, 0px);
transform: translate(0, 0px);
}
99%{
-webkit-transform: translate(0, -5px);
transform: translate(0, -5px);
}
100%{
-webkit-transform: translate(0, 0px);
transform: translate(0, 0px);
}
}  

Html5 与CSS3中的新特性

Html5 与CSS3中的新特性

Html5 绘画 canvas 元素   用于媒介回放的 video 和 audio 元素   本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;   sessionStorage 的数据在浏览器关闭后自动删除   语意化更好的内容元素,比如 article、footer、header、nav、section   表单控件,calendar、date、time、email、url、search CSS3   CSS3实现圆角(border-radius),阴影(Box-shadow),    对文字加特效(text-shadow、),线性渐变(gradient),旋转(transform)   transform:rotate(9deg) scale(0.85,0.90) translate(0px,-30px) skew(-9deg,0deg);//旋转,缩放,定位,倾斜   增加了更多的CSS选择器  多背景 rgba     在CSS3中唯一引入的伪元素是::selection.   媒体查询,多栏布局   border-image 移除的元素 纯表现的元素:basefont,big,center,font,s,strike,tt,u; 对可用性产生负面影响的元素:frame,frameset,noframes; * 是IE8/IE7/IE6支持通过document.createElement方法产生的标签,   可以利用这一特性让这些浏览器支持HTML5新标签,   浏览器支持新标签后,还需要添加标签默认的样式: * 当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架    <!--[if lt IE 9]>     <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>     <![endif]--> 

今天的关于html5和CSS3中新特性html5和css3新特性有哪些的分享已经结束,谢谢您的关注,如果想了解更多关于HTML5 & CSS3初学者指南(3) – HTML5新特性、HTML5 & CSS3初学者指南(3) �C HTML5新特性、html5 css3实例教程 一款html5和css3实现的小机器人走路动画_html5教程技巧、Html5 与CSS3中的新特性的相关知识,请在本站进行查询。

本文标签:

上一篇html初始化页面和a标签无下划线(html没有下划线)

下一篇css中line-height与vertical-align(css中line-height与height的区别)