位置: 编程技术 - 正文

了解CSS的查找匹配原理,让CSS更简洁、高效(css查找元素)

编辑:rootadmin
看1个简单的CSS: DIV#divBox p span.red{color:red;},按习惯我们对这个CSS 的理解是,浏览器先查找id为divBox的DIV元素,当找到后,再找其下的所有p元素,然后再查找所有span元素,当发现有span的class为red的时候,就应用该style。多么简单易懂的原理,可是这个理解却是完完全全相反、错误的。 匹配原理: 浏览器CSS匹配不是从左到右进行查找,而是从右到左进行查找。比如之前说的 DIV#divBox p span.red{color:red;},浏览器的查找顺序如下:   先查找html中所有class='red'的span元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有id为divBox的div元素,如果都存在则匹配上。 浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。比如如下html和css: 如果按从左到右查找,哪会先查找到很多不相关的p和span元素。而如果按从右到左的方式进行查找,则首先就查找到<span class='red'>的元素。firefox称这种查找方式为key selector(关键字查询),所谓的关键字就是样式规则中最后(最右边)的规则,上面的key就是span.red。 简洁、高效的CSS: 所谓高效的CSS就是让浏览器在查找style匹配的元素的时候尽量进行少的查找,下面列出一些我们常见的写CSS犯一些低效错误(也是我以前常常犯的错误,还老以为这样写才是高效的): 1.不要在ID选择器前使用标签名 一般写法:DIV#divBox 更好写法:#divBox 解释: 因为ID选择器是唯一的,加上div反而增加不必要的匹配。 2.不要再class选择器前使用标签名 一般写法:span.red 更好写法:.red 解释: 同第一条,但如果你定义了多个.red,而且在不同的元素下是样式不一样,则不能去掉,比如你css文件中定义如下: p.red{color:red;} span.red{color:#ffff} 如果是这样定义的就不要去掉,去掉后就会混淆,不过建议最好不要这样写 3.尽量少使用层级关系 一般写法:#divBox p .red{color:red;} 更好写法:.red{..} 4.使用class代替层级关系 一般写法:#divBox ul li a{display:block;} 更好写法:.block{display:block;} PS:看有些同学对从右到左的理论保持怀疑,下面贴出firefox和google的2篇相关css解释的文章,供大家参考 mozilla firefox: google page-speed:

推荐整理分享了解CSS的查找匹配原理,让CSS更简洁、高效(css查找元素),希望有所帮助,仅作参考,欢迎阅读内容。

了解CSS的查找匹配原理,让CSS更简洁、高效(css查找元素)

文章相关热门搜索词:css中search,css查找元素,用css设计一个搜索网页,css匹配,css中search,css中search,css中search,css怎么弄出搜索按钮,内容如对您有帮助,希望把文章链接给更多的朋友!

Zen Coding 快速编写HTML/CSS代码的实现 在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开发HTML和CSS的方法。它由SergeyChikuyonok开发。你在写HTML代码(包括所有标签、属性、引用、大

Zen Coding css,html缩写替换大观 快速写出html,css 阅读本文,先仔细阅读网站文章。ZenCoding快速编写HTML/CSS代码的实现E元素名称(div,p);E#id使用id的元素(div#content,p#intro,span#error);E.class使用类的元素(div.header

javascript代码规范小结 1.Javascript代码应符合Douban-JSLint检验标准1-1.语句必须都有分号结尾,除了for,function,if,switch,try,while1-2.只有长语句可以考虑断行,如:TEMPL_SONGLIST.replace('{TA

标签: css查找元素

本文链接地址:https://www.jiuchutong.com/biancheng/372076.html 转载请保留说明!

上一篇:firefox下rowspan+border+border-collapse的bug

下一篇:Zen Coding css,html缩写替换大观 快速写出html,css

  • 缴纳汇算清缴所得税怎么做账
  • 租房抵扣个税计算公式
  • 企业流动资产周转率下降的原因
  • 个人所得税汇算清缴情况报告
  • 哪些发票可以抵扣税
  • 开办费计入管理费用后是否要转出
  • 员工上下班交通安全培训
  • 稽查查补税款能缓缴
  • 预缴增值税时可抵扣吗
  • 小规模纳税人每个月需要报什么税
  • 按年征收的基金有哪些
  • 计提的利息汇算清缴前没发放,需要交企业所得税吗
  • 企业注销要缴个税吗
  • 该纳税人无发票相关信息
  • 资源税扣缴义务人代扣代缴税款的纳税义务发生时间
  • 建筑单位的工作岗位有哪些
  • 借方与贷方区别
  • 土地投资入股需要什么资料
  • 公司购酒的发票可以开多少
  • 如何正确使用储存卡
  • 跨年度冲减收入
  • 收购公司款项的支付是利好还是利差
  • 销货退回与折让是什么
  • win7的本地连接在哪
  • 微软windows11泄露
  • 商品房的维修金该怎么交
  • 增值税三流合一涉及子公司
  • 好奇地看着我
  • Xpath元素定位之同级节点,父节点,子节点
  • laravel启动流程
  • php 序列化函数
  • 简易计税办法和计税依据
  • qiankun跨域问题
  • 程序员的表白情书
  • 原材料按实际成本核算需设置的科目包括
  • 【Vue】踩坑日记:Scoped下动画无效,曾经以为百利而无一害的Scoped,也有自己的限制
  • 数据挖掘论文选题
  • ips attack
  • db2udb
  • python读取不到文件怎么办
  • row number函数的使用场景
  • mysql查询字段为空的数据
  • 小规模纳税人专用发票税率
  • 工资0申报怎么报
  • 库存现金太多违反什么规定
  • 法人转让股权,可以打个人账户吗
  • 总分类账与明细分类账平行登记的要点包括
  • 房屋估价需要准备什么
  • 政府资助专项资金是什么
  • 不良品怎么入账
  • 股权转让,受让方的会计分录
  • 公司给客户的礼品太差了还需要给客户吗
  • 小微企业注册流程及注意事项
  • 探望公司员工现金费用报销怎么写
  • 旅行社代订机票发票报销
  • 小规模公司怎样添加员工
  • 增值税专用发票丢了怎么补救
  • 企业收到劳务费会计分录怎么做账
  • 库存现金盘点表监盘人是谁
  • 企业增资的流程
  • 资产减值损失包含
  • 联合账簿是备查账簿和序时账簿的结合
  • 商业企业发出商品的核算方法
  • 查看mysql执行计划关键字
  • window小技巧
  • freebsd ports安装
  • 360win7
  • ubuntu 上不了网
  • win10链接手机怎么用
  • fedora系统安装软件
  • 在linux系统中创建用户账户
  • win8设备管理器没有端口
  • cocos2dx-3.x(二)、坐标系
  • shell脚本实现ssh登录
  • 最精简的年终工作总结
  • 深入理解新发展理念
  • 税盘换电脑怎么登陆
  • 广东电子税务局官网登录入口手机版
  • 竣工开始缴房产税吗
  • 黄金增值税管理难点
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设