CSS 性能
http://boagworld.com/dev/why-you-should-care-about-css-page-performance/
http://css-tricks.com/efficiently-rendering-css/
https://developers.google.com/speed/docs/best-practices/rendering
作者给出的 CSS 性能小提示:
1. 大家都知道 id 选择器的表现效果要优于 class,事实虽然也如此,但仅仅是非常微小的差别,几乎可以不予考虑;
2. CSS3 属性往往是影响页面性能的罪魁祸首,尤其是 animation 与 @font-face,谨慎地使用;
3. 现代浏览器支持 Javascript 与 Flash 硬件加速,却不支持 CSS, 虽然 webkit 有优化功能,但还是受限的;
4. 移动平台的情况是,即便现在最先进的手机也不及 10 年前最先进的电脑;
5. 人脑有大约 80 毫秒的反应时间,优化页面性能时不要在一些细枝末节的地方花太多精力,专注于拖慢严重的地方
6. 浏览器读 CSS 的顺序是从右往左,比如 ul > li a[title="home"]
,最先被读到的第一部分是 a[title="home"]
。
7. 效率由高到低的选择器依次是 ID, class, tag, universal :
#main-navigation { } /* ID (Fastest) */ body.home #page-wrap { } /* ID */ .main-navigation { } /* Class */ ul li a.current { } /* Class * ul { } /* Tag */ ul li a { } /* Tag */ * { } /* Universal (Slowest) */ #content [title='home'] /* Universal */
因为浏览器从右往左读,#main-nav > li {}
这一句即使用到了 id 选择器,实际效率却不会提升多少。
8. 不需要这样写 ul#main-navigation {}
,因为 ID 已经是独一无二的了,同理,tag 也要尽可能地避免与 class 一同使用。
9. 后代选择器是性能最差的,尤其是后代中包含 tag 或者 universal 选择器,比如 html body ul li a {}
简直是一场灾难。
10. 浏览器如果发现某个选择器不能匹配任何元素,将会立即终止尝试,开始匹配下一个选择器,从而提高执行效率。
11. 重新思考一下为什么要这样写,是不是还有优化的可能呢?比如利用元素的继承性可以省下很多不必要的设定。
12. 如果很在意性能,尽量少用 CSS3 选择器。
相关文章
- css怎么改鼠标样式,如何利用CSS改变鼠标的样式
- 怎么创建css样式表,怎样创建可反复使用的外部CSS样式表?[通俗易懂]
- CSS媒体查询_css网页
- CSS 优化、提高性能的方法有哪些
- 前端必备的 CSS 库,normalize.css
- 【CSS教程】紫色渐变登陆布局html+css代码
- WordPress 主题教程 #9:Style.css 和 CSS 介绍
- 属性Oracle的CSS属性:让你的网站更出彩(oracle的css)
- MySQL 性能深度优化之路(mysql深度优化)
- Oracle 分区技术:提高性能的不二法宝(oracle加分区)
- 苹果M1X性能曝光:32核GPU媲美RTX 3070、节省一半功耗
- 探索 Linux 上的 JVM 性能优化(linuxjvm)
- Linux 磁盘读写:性能提升指南(linux磁盘读写)
- 经济实惠的MySQL数据库:价格低,性能优秀(便宜的mysql数据库)
- 使用MySQL优化XFS磁盘性能(mysqlxfs)
- Linux 系统性能测试实践(性能测试linux)
- 关注Oracle优化教材,提升数据库性能(oracle优化教材)
- Linux内核优化:提高系统稳定性与性能(linux内核优化)
- 利用Linux下的压力测试工具提升性能(linux 压力测试工具)
- 性能优化Redis性能的捷径五招必看(怎么优化redis)
- 利用Redis队列与缓存提升系统性能(redis队列和缓存)
- 器使用Oracle CSS服务器提升业务效率(oracle css服务)
- 区块链的性能和隐私如何兼得?从业者们是这样谈取舍的
- juqery学习之六CSS--css、位置、宽高
- 如何使用jquery控制CSS样式,并且取消Css样式(如背景色,有实例)