0

0

CSS选择器优先级与效率优化_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-24 11:39:17

|

1027人浏览过

|

来源于php中文网

原创

CSS选择器优先级与效率优化

Date: 7th of Aug, 2015 Author: HaoyCn

本文收集网上各处关于css选择器的文章总结,并自己归纳一篇。

各类选择器的优先级

  • important声明 1,0,0,0
  • ID选择器 0,1,0,0
  • 类选择器 0,0,1,0
  • 伪类选择器 0,0,1,0
  • 属性选择器 0,0,1,0
  • 标签选择器 0,0,0,1
  • 伪元素选择器 0,0,0,1
  • 通配符选择器 0,0,0,0
  • 在上面的选择器中,此外,经测试

    属性选择器 = 伪类选择器(应用最后一个)

    :last-child{color:red;}[desc]{color:green;}

    伪类选择器 > 相邻选择器

    :last-child{color:green;}p ~ p{color:blue;}

    相邻选择器 = 子选择器 = 后代选择器(应用最后一个)

    立即学习前端免费学习笔记(深入)”;

    p~p{color:red;}body p{color:blue;}body > p{color:green;}

    后代选择器 > 标签选择器

    p ~ p{color:blue;}p{color:green;}

    样式位置的影响

  • 同级,应用取决于

  • 元素属性的优先级高于以上两种样式

  • !important 优先级高于以上两种样式

  • 备注

    !important 在IE6中的BUG:在同一组CSS属性中, !important不起作用。如:

    #selector{color:blue !important;color:green;}

    选择器效率

    读取选择器的原则是从右到左。因此,我们书写的右边的最后一个选择器,被称作关键选择器,对于效率有决定性影响。

    以下效率排行由 @Steve Souders 提供。

    LALALAND
    LALALAND

    AI驱动的时尚服装设计平台

    下载
  • ID选择器
  • 类选择器
  • 标签选择器
  • 相邻选择器
  • 子选择器
  • 后代选择器
  • 通配符选择器
  • 属性选择器
  • 伪类选择器
  • 优先级高的不一定效率高

    举个例子:#id .class 与 div#id p.class

    前者效率高于后者,而后者优先级高于前者。我们需要在效率与优先级之间平衡取舍。

    优化建议

    以下网址提供了诸多建议:

    https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Writing_efficie...

    扼要摘其精要总结如下:

  • 避免使用通配符

  • 不使用标签名或类名修饰ID规则:如果规则使用ID选择器作为关键选择器,不要给规则添加标签名。因为ID本身就是唯一的,添加标签名会不必要地降低匹配效率。

  • 不使用标签名修饰类:相较于标签,类更具独特性。

  • 尽量选择最具体的方式:造成低效的最简单粗暴的原因就是在标签上使用太多规则。给元素添加类可以更快细分到类方式,可以减少规则去匹配标签的时间。

  • 关于后代选择器和子选择器:避免使用后代选择器,非要用的话建议用子选择器代替,但子选择器也要慎用,标签规则永远不要包含子选择器。

  • 利用可继承性:没必要在一般内容上声明样式。

  • 相关文章

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    高德地图升级方法汇总
    高德地图升级方法汇总

    本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

    43

    2026.01.16

    全民K歌得高分教程大全
    全民K歌得高分教程大全

    本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

    84

    2026.01.16

    C++ 单元测试与代码质量保障
    C++ 单元测试与代码质量保障

    本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

    24

    2026.01.16

    java数据库连接教程大全
    java数据库连接教程大全

    本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

    35

    2026.01.15

    Java音频处理教程汇总
    Java音频处理教程汇总

    本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

    16

    2026.01.15

    windows查看wifi密码教程大全
    windows查看wifi密码教程大全

    本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

    56

    2026.01.15

    浏览器缓存清理方法汇总
    浏览器缓存清理方法汇总

    本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

    16

    2026.01.15

    ps图片相关教程汇总
    ps图片相关教程汇总

    本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

    9

    2026.01.15

    ppt一键生成相关合集
    ppt一键生成相关合集

    本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

    26

    2026.01.15

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    独孤九贱(6)_jQuery视频教程
    独孤九贱(6)_jQuery视频教程

    共44课时 | 34.7万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号