`

CSS的渲染效率–高效的CSS优化

 
阅读更多

 

 

链接地址:http://woshao.com/article/d16e311a691511e0b4f6000c2959fd2a/

 

总结了部分所学、所听、所看、所问的一些CSS写作经验,CSS的渲染效率 - 高效的CSS优化,它们与渲染效率及所占用消耗的资源有一定的关联。部分为自己理解所写,不排除会有错漏,欢迎提供更好的意见。

1、十六进制的颜色值对位数与大小写

编写十六进制颜色值时你可能会用小写字母或省略成3位数,关于这写法没找到确实的数据证明对浏览器的渲染效率是否有影响,但十六进制的颜色值默认标准是大写及6位数标注。在未知情况下不希望冒险而降低了渲染的效率。
* 不赞成 - color:#f3a;
* 建议用 - color:#FF33AA;

2、display与visibility的差异

他们用于设置或检索是否显示对象。display隐藏对象不保留物理空间,visibility为隐藏对象保留占据的物理空间。当浏览器渲染被占据的物理空间时,会有所消耗资源。
* 不赞成 - visibility:hidden;
* 建议用 - display:none;

3、border:none;与border:0;的区别

和display与visibility的关系类似,分别不保留与保留空间。更多的是border:0;尽管可以隐藏掉边框,但它会为你保留border-color/border-style的使用权。
* 不赞成 - border:0;
* 建议用 - border:none;

4、不宜过小的背景图片平铺

一张宽高1px的背景图片,虽然文件体积非常之小,但渲染宽高500px的板块需要重复平铺2500次。提高背景图片渲染效率跟图片尺寸及体积有关,最大的图片文件体积保持约70KB。
* 不赞成 - 宽高8px以下的平铺背景图片
* 建议用 - 衡量适中体积及尺寸的背景图片

5、IE的滤镜

IE的滤镜除了比较消耗资源外也有兼容性问题。当中有令PNG透明的滤镜,可采用GIF或JPG似透非透的办法来避免使用此滤镜。建议只在IE6应用GIF透明,因为IE7以上已经支持了PNG透明。
* 不赞成,滥用IE滤镜因为消耗资源外也有兼容性问题。
* 建议用,最好选择其它方法能避免使用滤镜。

6、*{ margin:0; padding:0;}避免浏览器样式差异

*号通配符把所有标签都初始化一遍,浏览器的渲染消耗一定的资源。有部分在标签在不同浏览器上几乎无差异,或是某些已经不推荐使用的标签(因为你不会去用它),它们不需通配符要重新初始化一遍这样做能节省一点资源。
* 不赞成,使用*号通配符
* 不赞成,div span button b table等标签纳入通配符控制内外填充样式
* 建议用,有选择性地使用通配符控制内外填充样式。

7、不要添加额外的标签来描述class或id

如果你有一个选择器是以id作为关键选择符,请不要添加多余标签名上去。因为ID是唯一的,你不要为了一个不存在的理由而降低了匹配的效率。
* 不赞成 - button#backButton { }
* 不赞成 - .menu-left #newMenuIcon { }
* 建议用 - #backButton { }
* 建议用 - #newMenuIcon { }

8、尽量选择最特殊的类来存放选择器

降低系统效率的一个最大原因是我们在标签类中用了过多的选择符。通过添加 class 到元素,我们可以将类别进行再细分为 class 类,这样就不用为了一个标签浪费时间去匹配过多的选择符了。
* 不赞成 - treeitem[mailfolder="true"] > treerow > treecell { }
* 建议用 - .treecell-mailfolder { }

9、避免子孙选择符

子孙选择符是CSS中最耗资源的选择符。他真的是非常的耗资源,尤其是在选择器使用标签类或通用类的时候。很多情况中,我们真正想要的是子选择符。除非有明确说明,在 UI CSS 中是严禁使用子孙选择符的。
* 不赞成 - treehead treerow treecell { }
* 好一点,但还是不行(参照下一条) - treehead > treerow > treecell { }

10、标签类中不要包含子选择符

不要在标签类中使用子选择符。否则,每次元素的出现,都会额外地增加匹配时间。(特别是当选择器似乎多半会被匹配的情况下)
* 不赞成 - treehead > treerow > treecell { }
* 建议用 - .treecell-header { }

11、留意所有子选择符的使用

小心地使用子选择符。如果你能想出一个的不使用他的方法,那么就不要使用。特别是在 RDF 树和菜单会频繁地使用子选择符,像这样。
* 不赞成 - treeitem[IsImapServer="true"] > treerow > .tree-folderpane-icon { }

请记住 RDF 的属性是可以在模板中被复制的!利用这一点,我们可以复制那些想基于该属性改变的子 XUL 元素上的 RDF 属性。
* 建议用 - .tree-folderpane-icon[IsImapServer="true"] { }

分享到:
评论

相关推荐

    css书写高效的CSS-CSS的渲染效率

    ### CSS书写高效的CSS-CSS的渲染效率 在前端开发领域,CSS(层叠样式表)是构建网页布局、样式和视觉效果的关键技术之一。优化CSS不仅能够提升网站性能,还能改善用户体验。本文将从几个方面探讨如何通过改进CSS...

    移动APP H5前端性能优化指南.zip加载优化 图片优化 CSS优化 渲染优化

    移动APP的H5前端性能优化是提升用户体验的关键环节,它涉及到加载速度、图片显示、CSS渲染等多个方面。本文将深入探讨这些关键领域的优化策略。 首先,我们关注的是**加载优化**。加载速度直接影响用户对应用的第一...

    Three.js前端3D开发:使用CSS3DRenderer渲染全景图

    在本主题中,我们将深入探讨如何使用 Three.js 的 CSS3DRenderer 来渲染全景图,这是一种将3D对象与CSS3变换相结合的技术,能够实现高效且性能良好的3D效果。 首先,CSS3DRenderer 是 Three.js 提供的一个渲染器,...

    js css 优化软件

    然而,未经优化的js代码可能导致浏览器解析和执行效率降低,延长页面加载时间。优化js主要包括以下几个方面: 1. **压缩代码**:通过删除空格、注释和换行,可以显著减小js文件大小,加快下载速度。例如,使用...

    css优化.zip

    在网页设计和开发中,CSS(层叠样式表)优化是一项至关重要的技能,它能够提升网站性能,提高用户体验,同时使代码更易于维护。"css优化.zip"这个压缩包文件包含了一些关于CSS优化的教程资源,适合正在学习或需要...

    CSS3 动画卡顿性能优化的完美解决方案

    在处理CSS3动画时,开发者常常会遇到动画卡顿的问题,这对用户体验会产生极大的负面影响。...总之,通过使用合理的CSS3属性和动画优化技巧,可以有效改善动画性能,提供更加流畅和舒适的用户体验。

    CSS3D.js, 用于 Three.js的CSS 3D 渲染器.zip

    CSS3D.js, 用于 Three.js的CSS 3D 渲染器 CSS3D.js由 Steven Wittens 用于 Three.js的CSS 3D 渲染器注意:这个库现在已经过时了,因为 Three.js 拥有自己的CSS 3D 呈现器插件,它集成在一个更清晰的样式中。...

    CSS高效开发实战

    在《CSS高效开发实战》这一主题中,我们将深入探讨如何优化和提升CSS代码的质量与效率。CSS(层叠样式表)是网页设计的核心技术之一,它负责定义网页内容的外观和布局。通过高效的CSS开发实践,我们可以实现更快的...

    CSSBox:纯Java HTML / CSS渲染引擎-开源

    **CSSBox:深入理解纯Java HTML/CSS渲染引擎** CSSBox是一个完全由Java语言实现的(X)HTML/CSS渲染引擎。它的核心功能是解析HTML和CSS代码,并将其转化为可视化的网页布局,同时提供对渲染后页面的详细信息,便于...

    css 实现文字半边渲染

    单个文字的半边渲染

    前端 web素材 中级进阶 JavaScript 优化 css优化

    中级进阶阶段,开发者需要深入理解这些技术的优化策略,以实现更高效、更流畅的网页应用。 首先,我们来探讨JavaScript的优化。JavaScript是前端开发的核心语言,它负责处理页面的动态交互和数据处理。为了提高...

    纯CSS渲染的html5冻结固定table表格首行首列示例

    纯CSS渲染的html5冻结固定table表格首行首列示例,完美滚动不出现空白线条

    CSS:The Definitive Guide, 4th Edition[CSS权威指南](英文版)

    6. CSS性能优化:本书可能会讨论如何编写高效的CSS以优化页面加载时间和渲染性能。 7. CSS最佳实践:包括代码的组织、命名约定、代码复用以及可维护性的最佳实践。 8. CSS在多设备上的应用:随着移动设备的普及,...

    css代码优化的12个技巧

    CSS代码优化是前端开发中一个重要的环节,它直接关系到页面的加载速度和渲染性能。优化CSS可以减少浏览器在解析和应用样式的计算量,从而提高页面的响应速度和用户体验。 根据MDN的分类,CSS选择符可以划分为四类,...

    Web开发中渲染优化技术探讨-渐进增强、优雅降级与CSS性能优化的应用及意义

    此外还深入阐述了CSS方面的一系列渲染性能优化措施,包括合理选择CSS选择器(减少深层嵌套)、简化语法、遵守特定编码规则(比如限制字体使用量、避免@import声明)来加快解析时间、减小重排发生的频率等。...

    CSS3渲染Checkbox实现3D开关切换按钮

    利用checkbox结合CSS3来实现一个3D开关切换按钮,该CSS3按钮一共有4款不同的样式风格,有电器开关样式...该CSS3按钮的实现原理很简单,原型是一个checkbox,然后利用CSS3属性来渲染checkbox,从而实现3D按钮的效果。

    CSS渲染页面特效

    用CSS来渲染网页显示各种特效: 图片放大,漂移; 文字选中后变色;

    精通CSS第二版、CSS那些事、CSS权威指南 第3版

    在CSS的实践应用中,我们可能会遇到各种各样的问题和挑战,比如如何优化选择器以提高渲染性能,怎样设计高效的布局策略,以及如何在保证网页响应性的同时进行性能优化。作者通过分享个人在工作中遇到的问题和解决...

    24-分层和合成机制:为什么CSS动画比JavaScript高效?_For_vip_user_0011

    CSS动画与JavaScript的渲染机制之分层和合成机制 ...今天我们探讨了CSS动画为什么比JavaScript高效,主要是因为CSS动画使用了分层和合成机制,这种机制可以将页面分解成多个图层和渲染单元,从而提高页面的渲染效率。

    css_usage.zip

    5. **CSS预处理器**(如Sass、Less):它们提供变量、嵌套规则、混合等特性,使CSS编写更模块化,且编译后生成的CSS代码通常更高效。 6. **CSS权重**:理解选择器的权重对正确应用样式至关重要,权重由ID、类、属性...

Global site tag (gtag.js) - Google Analytics