css优化

css动画优化

1 .动画的实现,改变位置,大小,旋转,透明度
2 .css图层的概念。渲染dom的时候,浏览器分为以下几步

1:分割图层,对每个图层的节点计算样式结果,为每个节点生成图形和位置,重排。
2:将节点绘制填充到图层位图中,重绘。图层作为纹理上传到CPU,融合多个图层到页面生成图像,如果图层中某个元素需要重绘,那么整个图层都需要重绘。

3 .创建图层的条件

1.3d或者透视变换
2.video节点
3.拥有3d上下文或者加速的2d上下文canvas的节点。
4.混合插件flash
5.有后代子元素的节点
6.元素有z-index

4 .触发重布局的属性

1.盒子模型的相关属性。定位属性和浮动属性
2.改变节点内部文字结构也会触发重布局,font-size这类级别的也不行
3.所有改变元素位置或大小的元素,都会触发重排。

5 .触发重绘的属性:不修改节点位置和大小的属性是不会触发布局的,只是节点内部的渲染效果发生改变,所以需要重绘

6 .触发图层重组的属性

1.透明度
2.使用tanslateZ(0),translate3D()使浏览器创建新的图层,可以使动画尽快开始。
3.transform:可以改变节点的位置,旋转,大小,但是这些都不会发生重布局。

7 .在网页中使用css类来对节点做状态表示,当这些节点的状态标记类发生修改的时候,将会触发节点的重绘和重布局。所以在节点上使用css类来做状态比较是非常昂贵的。
8 .把首次绘制的css提取出来,优于其他css文件发送。递增的交付较小的js块。使用订制的外部更新机制,客户端在后台下载新的js文件,然后在页面刷新的时候更新。
9 .慎重选择高消耗操作

1.box-shadow
2.border-radius
3.transparency
4.transform
5.css filter

10 .动画的元素使用absolute,fixed,尽量不影响其他元素
11 .不使用table布局,一旦其中的任何一个元素发生reflow,整个元素都必须reflow
12 .display:none .reflow 。visibity,repaint
13 .常见重排元素:font-size,text-align,overflow,vertical-align,clear,white-space.
13 .优化动画,启用GPU硬件加速,应用GPU的图形性能对浏览器的一些图形操作进行加速。包括3D,2D。
14 .canvas2D,布局合成,css3转换,3D变换,webGL和video.
15 .如何开启硬件加速:

1.translate3d  
2.scale3d
3.rotate3d

16 .硬件加速最好使用在animation,transform上。
17 .cssom构建的时候,浏览器会延迟js和dom构建
18 .是否使用了!import 声明
19 .是否对个别浏览器做了hack
20 .是否使用了过多的不同选择器
21 .去除未使用的样式,随着网站的发展,未使用的样式会在不经意之间增多,被删除的元素或页面,重命名或者设计的元素,由第三方组件替代的元素,都会产生多于的样式。audits面板可以扫描html找到未使用的css
22 .合并和精简样式,如果你使用less或者sass的话,生成的代码也可能会包含大量冗余,重复定义和压缩的机会。
23 .使用高效的选择器。低效的选择器和!import规则通常会让css文件变得冗余
24 .优化网络字体:字体是能够提升页面美感而降低加载速度的典型例子,在加载字体的同事要注意尽可能的让字体高效,同时要测量性能和转化率等相关指标,确保字体在页面红付出的代价是值的
25 .创建可以复用的HTML标记:为资源缓存提供便利,防止设计师和开发者白费力气做重复的工作,在加载新资源的时候无需加载非必要的资源,帮助你删除那些不需要的样式和资源
26 .资源压缩和缓存:压缩可以使用工作话流程,缓存则是所有的静态文件都应该被缓存
27 .一个页面上原则上有一个css文件
28 .素材合并,对于超过五屏的页面,素材应该合并为多个文件,前三屏为一个文件,中间3屏为一个文件。
29 .小段的代码可以直接写在html里面,避免再次下载
30 .使用外部的css和js,外部的文件是都能在浏览器中产生缓存,内置的HTML文档中的js和css会在每次请求中随着HTML文档重新下载。
31 .避免使用滤镜,IE浏览器使用这个的时候可能会冻结滤镜。
32 .使用媒体查询

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

推荐阅读更多精彩内容

  • 在前端面试中最常见的问题就是页面优化和缓存(貌似也是页面优化),被问了几次后心虚的不行,平然平时多少会用到一些,但...
    恩德_b0c2阅读 396评论 0 3
  • 原理 现代浏览器在使用CSS3动画时,以下四种情形绘制的效率较高,分别是: 改变位置 改变大小 旋转 改变透明度 ...
    ddai_Q阅读 3,772评论 0 11
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,630评论 1 92
  • 对于绝大部分的开发者来说,css的功能就是完成页面布局,制定页面的展示效果。其实css也有许多能实现Web性能优化...
    果汁凉茶丶阅读 6,194评论 0 8
  • CSS3动画应用很广,尤其是在H5项目中,炫酷的交互效果可以给产品带来更好的体验,更能吸引用户。然而在应用的时候,...
    UIleader阅读 2,109评论 0 7