什么是html5呢?
html5最先由WHATWG(Web 超文本应用技术工作组)命名的一种超文本标记语言,随后和W3C的xhtml2.0(标准)相结合,产生现在最新一代的超文本标记语言。可以简单点理解成:HTML 5 ≈ HTML4.0+CSS3+JS+API。
hmtl5和html的区别在哪里?
在文档类型声明上
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns="
html5
<!DOCTYPE html>2.在结构语义上
html4.0:没有体现结构语义化的标签,我们通常都是这样来命名的
<div id="header"></div>html5:在语义上却有很大的优势。提供了一些新的html5标签,比如:
<header> 、<nav>、<article>、<aside>、<footer>..3.强大的HTML5的新功能
(1)强大的绘图功能
可能有些动画,或者图片,在html5可以通过强大的绘画功能,加上JS可以实现。而在html4.0却不行。
在HTML5中,有两个东西,是可以进行绘图的,我们一起来看看是哪两个神奇的玩意。
1.Canvas标签
Canvas 通过 JavaScript 来绘制 2D 图形,Canvas 是逐像素进行渲染的。
在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。
2.SVG
SVG 是一种使用 XML 描述 2D 图形的语言,SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。
与其他图像格式相比(比如 JPEG 和 GIF),使用 SVG 的优势在于:
(1)SVG 图像可通过文本编辑器来创建和修改
(2)SVG 图像可被搜索、索引、脚本化或压缩
(3)SVG 是可伸缩的
(4)SVG 图像可在任何的分辨率下被高质量地打印
(5)SVG 可在图像质量不下降的情况下被放大
那么都两者都可以用于绘图,我们一起来看看他们之间有何区别:
Canvas
1.依赖分辨率
2.不支持事件处理器
3.弱的文本渲染能力
4.能够以 .png 或 .jpg 格式保存结果图像
5.最适合图像密集型的游戏,其中的许多对象会被频繁重绘
SVG
1.不依赖分辨率
2.支持事件处理器
3.最适合带有大型渲染区域的应用程序(比如谷歌地图)
4.复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
5.不适合游戏应用
(2)新增视频标签
可能在html4.0的时候,我们想要插入一段视频,还需要引用一长段的代码。但是在html5的情况下。我们只需要用于一个video标签即可。
<videosrc="视频地址"></video>提供这样的标签有什么样的好处呢?
第一:节省程序员写代码的时间。
第二:我觉得最主要还是在SEO的优化上。
不管是我们自己来对网页模块命名,还是有这样的标签。因为做网站最终的目的只有一个,那就是盈利。想盈利的话,就只有通过SEO优化的技术,把你网站排名做上来,这样你的网站才有价值,且正是这一点,html5符合了这一点。为什么这么说呢?因为他定义的这些标签,更加有利于优化,蜘蛛能识别你。
CSS3 对于 CSS2.1 有很多的修改和补充。
css3是CSS2技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在太过庞大且比较复杂,所以,把它分解为一些小的模块。更多新的模块也被加入进来,这些模块包括:盒子模块,列表模块,超链接模块,语言模块,背景和边框,文字特效,多栏布局等.
transform 不会使DOM脱离文档流,当通过 translateX 等属性值移动了元素后,它仍然占据原来的位置。好处是, transform 制作的动画会直接进入合成阶段,避开重排重绘,可以通过 Performance 录制面板来查看 transform 动画的效率。
MDN animation
深入浅出CSS动画
MDN animate()
监听 CSS animation 动画的事件:
这些监听事件对 animate() 是无效的。
页面顶部经常会见到水平无限轮播的公告。
由于轮播的内容是动态的,可能很多,也可能很少,如果公告内容的宽度没有超过最大宽度限制,那么就不应该轮播,如果超过了,则发起轮播。
假设我们永远只有一条最新的公告
原理:当一次动画执行结束时,影子内容的头部刚好对准轮播内容的初始位置,那么下次动画开始时,轮播内容将重新回到初始位置,由于影子内容与轮播内容相同,那么就给人造成一种无限轮播的错觉。
逻辑实现:父元素设置了 overflow: hidden ,又想要获取父元素、子元素的真实宽度,那么可以通过 scrollWidth 获取。
兼容性:如果不支持 animate() ,那么我们可以动态创建 <style>+ @keyframes ,插入 <head>, 但也要记得移除。
CSS是层叠样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
语法结构:
.class{"属性":"值","属性":"值"}