首页 > 教程 > 关键词  > 高效最新资讯  > 正文

如何使CSS渲染更高效

2010-05-26 16:59 · 稿源:蓝色理想

原文:Efficiently Rendering CSS

我承认我并不经常想这个问题......我们写的css的效率是怎么样的呢,浏览器渲染的速度又如何呢?

这是应该是浏览器开发者应该关心的(页面加载更快,用户就会更愉快)。Mozilla有一篇文章:about best practices . Google当然也很关心这个问题,他们也有这样一篇文章:Optimize browser rendering

让我们了解下他们主要倡导的东东,然后讨论他们的实用性。

从右到左

浏览器如何读取你的CSS选择器有一个很重要的原则,那就是它们从右到左读取。这意味这像 ul > li a[title="home"] 这样的选择器,a[title="home"] 将是最先被读取的。这一部分通常被称为 “key selector” (可否称为“目标选择器” -_-!)选择器的最后一部分,也是被选择的标签。

ID's 是最有效率的,通用符是最慢的

有四种目标选择器:ID, class, tag和通用符。看下他们各自的效率如何:
#main-navigation { } /* ID (最快) */
body.home #page-wrap { } /* ID */
.main-navigation { } /* Class */
ul li a.current { } /* Class *
ul { } /* Tag */
ul li a { } /* Tag */
* { } /* Universal (最慢) */
#content [title='home'] /* Universal */ 然后我们结合从右到左和目标选择器的概念,我们可以知道下面这个选择器并不高效:
#main-nav > li { } /* 看着很快实则很慢 */
尽管这让人有点费解......因为ID's是最高效的,浏览器可以通过ID迅速的找到 li。但事实是,li 标签是被先读取的。

不要用标签修饰

死也不要像下面这样干:

以下为引用的内容:

ul#main-navigation { }

ID's 是唯一的,所以不需要用标签修饰,这只会让它更低效。
如果你可以避免的话,也不要用它修饰 class 。class 不是唯一的,所以理论上你可以把它用在不同的标签。如果你愿意的话,你可以用标签控制不同的样式,这样你可能需要标签修饰(比如:li.first),但这样做的人很少,所以,don't .

绝对没有比用后代选择器更糟糕的做法了

David Hyatt:

后代选择器是CSS里最昂贵的选择器,昂贵得可怕——特别是当它放在标签和通用符后面时。
就如下面这个东东一样,绝对的效率毒瘤:

以下为引用的内容:

html body ul li a { }

一个选择器渲染失败比这个选择器被渲染更高效

我不是很确定是否有更好的证据去证明这一点,因为如果你有大量的选择器在CSS样式表里无法找到,这样的事情貌似很离奇,但一点必需注意的是,从右到左的解释一个选择器来说,一旦它找不到,那它就会停止尝试。然而如果它找到了,那它就需要花更多精力去解释了。

试想一下为何你这样写选择器

思考下这东东:

以下为引用的内容:

#main-navigation li a { font-family: Georgia, Serif; }

你可能不需要从 a 选择器开始(如果你只是想换个字体)。下面这个可能更高效些:

以下为引用的内容:

#main-navigation { font-family: Georgia, Serif; }

实用性

还刻前面提到的Mozilla的一篇文章?已经有十年了。事实是:计算机比十年前变慢了(不是我理解错了,还是作者想说现在的WEB越来越复杂了)。我感觉这东东在当年似乎还更受重视。十年前我还是个21岁的英俊小生,当然我不觉得那里我会认识css这东东。所以我也无法跟你讲以前的情况......但我觉得渲染效率的问题之所以没被重视是因为这从来就不是一个大问题。

这是我的一些看法:不管怎样上面提到的东东都是有意义的,你可以按照上面的方法去做,因为它并不会限制你的CSS制作。但你也没必要太教条主义。如果你是个完美主义者,而之前又没有考虑过那东东,那是时候去重新看一下你之前写的一些样式是否有改进的地方了。如果你没发现你的网站明显的渲染缓慢,那大可别太在意,在以后的工作中多注意就行了。

超级快速,零实用性

我们知道ID's 是最高效的选择器。当你想让渲染速度最高效时,你可能会给每个独立的标签配置一个ID,然后用这些ID写样式。那会超级快,也超级荒唐。这样的结果是语义极差,维护难到了极点。即使在核心部分你也不应该见过这样做的。我认为这个可以提醒我们不要为了高效的CSS放弃语义和可维护性。

Thanks to Jason Beaudoin for emailing me about the idea. If anyone knows more about this stuff, or if you have additional tips that you use in this same vein, let’s hear it!

顺便提一下,因为CSS选择器被很多javascript库使用,上面提到的东东仍然适用,ID选择器还是最快的,后代选择器和类似的东东比较慢。

PS:看谁还敢用N多的后代选择器,还有反对我用ID的!

本文链接:https://www.blueidea.com/tech/web/2010/7631.asp

举报

  • 相关推荐
  • AI日报:扣子空间网页设计功能上线;阿里Wan 2.2即将上线;​OpenAI即将发布 GPT-5

    【AI日报】今日AI领域重要动态:1)Coze推出网页AI设计功能,5分钟生成网页;2)通义千问发布Qwen-MT翻译模型,支持92种语言;3)ChatGPT全面推出Agent功能;4)阿里云Wan2.2视频生成AI即将上线;5)Anthropic推出审计Agent提升AI对齐测试;6)OpenAI计划8月发布GPT-5;7)谷歌发布无代码AI应用开发工具Opal;8)南洋理工与上海AI Lab推出PhysX-3D项目,为3D模型添加物理属性;9)快手开源KAT-V1大模型,40B版本性能接近DeepSeek-R1;10)讯飞星火X1升级版上线,在多语言和语音处理方面显著提升。(140字)

  • 索尼ILX-LR1助力无人机实现高效罂粟巡查

    连云港空巡智能科技公司开发出搭载索尼ILX-LR1云台的无人机系统,用于罂粟等毒品原植物识别。该系统采用6100万像素相机,配合自主AI识别模型,能通过叶片形态、花果特征精准识别毒品植株,苗期识别率达90%,花果期达95%以上。ILX-LR1轻量化设计仅重243克,支持3张/秒航拍频率,可适配多旋翼和复合翼无人机,作业效率较传统方式提升8-10倍。该技术已应用于2025年禁种铲毒巡查项目,实现高空广域快速巡查,为禁毒工作提供高效精准的技术支持。

  • 新高考备考策略升级,新版学魁榜《母题清单》引领高效学习新风向!

    随着新高考改革深入实施,高考命题呈现灵活多变趋势,对考生综合能力要求更高。学魁榜推出新版《学魁母题清单》,由清北等名校学霸教研团队打造,精准匹配新高考命题方向。该书采用"学、练、查"三册一体设计,新增创新题型和九省联考真题解析,配套智能视频讲解,帮助学生掌握"学一题通一类"的高效学习方法。通过母题深度剖析和变式训练,提升学生解题能力,避免无效学习,助力考生在新高考中脱颖而出。

  • Jetinno 技诺 JL33 商用全自动咖啡机:便利店咖啡服务的高效解决方案

    Jetinno技诺JL33商用现磨全自动咖啡机专为便利店设计,采用双锅炉双泵系统可同时制作黑咖和奶咖,每小时最高可出146杯。配备双研磨器、双豆仓和双粉仓,支持15种以上饮品选择。专利高压萃取技术确保咖啡品质稳定,多种自动清洁系统简化维护流程。该设备能显著提升便利店咖啡服务效率和盈利能力,满足顾客多样化需求。

  • AI导航站哪个好?推荐AIbase,帮你高效找到最强AI工具!

    文章介绍了在AI工具泛滥的当下,用户面临选择困难的问题,推荐使用AIbase导航网站。该平台通过科学的评估体系精选优质AI工具,覆盖写作、绘图、编程等数十个垂直场景,并提供实时行业资讯。不同于简单罗列工具,AIbase兼具工具导航和内容平台功能,每日更新AI动态,帮助用户高效匹配需求。平台还开放工具入驻通道,为开发者提供曝光机会。AIbase以专业分类和人性化体验,成为用户进入AI世界的理性入口。

  • SSD Fans评测:忆联消费级SSD AM541|强性能 高可靠 长守护

    国内知名技术社区SSD Fans对忆联消费级SSD AM541进行了深度评测。这款PCIe4.0固态硬盘采用3D NAND闪存颗粒和最新主控芯片,1TB版本顺序读取速度达7143MB/s,写入6037MB/s,远超标称值。评测显示AM541在性能、压力测试和可靠性方面表现优异,采用无缓存DRAM-Less设计配合智能SLC缓存机制,在CDM、SNIA标准测试中均展现业界领先水平。游戏实测《FF14》加载仅7.445秒,《黑神话:悟空》启动快40%,充分满足消费级用户对高性能存储的需求,展现了忆联在存储领域的技术实力。

  • 免费入场+高能福利!AGON爱攻ChinaJoy CS水友赛玩家招募通道即刻开启

    2025年ChinaJoy将于8月1-4日在上海举办,AGON爱攻将携手完美世界电竞打造精彩赛事活动。亮点包括:水友可报名与传奇战队"钢盔队"对决,还有机会与三大CS主播组队;现场将展示多款电竞显示器新品,包括CS24A定制款;参与互动问答和抽奖有机会赢取AGON大礼包。活动地点为N1-G201完美世界展区主舞台,14:00开赛。线上观众关注B站AGON官方账号参与话题互动也有福利。这是一�

  • 正式上线运行!itc保伦股份自研功放智能自动老化系统助力企业高效生产!

    ITC保伦股份自主研发的功放智能自动老化系统在音频设备测试领域实现重大突破。该系统通过自动化控制技术、智能检测技术和物流系统集成,实现功放设备从输入到输出的全流程自动化测试,大幅提升测试效率和准确性。系统支持多通道大功率测试,具备实时监测预警功能,并符合多项国家标准。目前已成为行业规模最大、检测指标最全、精度最高的音频智能老化系统,广泛应用于专业功放、广播功放等多种音频设备的生产和研发领域,为产品质量提供可靠保障,引领行业技术革新。

  • 高效找到理想伴侣,世纪佳缘为年轻人提供交友新体验

    如今年轻人对婚恋服务提出更高要求,希望获得高效精准的个性化体验。世纪佳缘引入AI技术,通过深度数据分析用户兴趣、价值观和生活习惯,提供精准匹配建议。系统还能根据用户反馈实时优化推荐,增强个性化体验。平台还配备专业客服和情感顾问,并定期组织线上线下活动,帮助用户在真实互动中建立情感连接。针对"社恐"问题,推出"AI恋人"功能提供情感陪伴和社交指导,通过模拟对话帮助用户克服社交障碍。世纪佳缘通过技术创新,为年轻人打造高效智能的婚恋平台,助力他们找到幸福。

  • Checkout.com携手Visa推出发卡业务 (Card Issuing)

    Checkout.com与Visa达成战略合作,在英国及欧洲地区推出全方位发卡业务。通过Visa全球支付网络,商户可即时获取收款资金用于支付供应商款项,显著提升资金使用效率。该合作特别针对旅游业企业,解决其支付流程分散、资金周转慢的痛点。Checkout.com每年处理数千亿交易的技术能力与Visa网络结合,帮助商户消除预存资金需求,优化现金流管理。双方表示这将大幅提升欧洲商户运营效率,释放增长潜力。