位置: 编程技术 - 正文

了解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

  • 增值税价外税是什么税种
  • 弹性预算列表式如何计算
  • 价外费用是含税价还是不含税价
  • 资产负债表中的固定资产是原值还是净值
  • 非限定性净资产借贷方向
  • 小规模税收优惠政策1%到什么时候
  • 进口增值税和进项税
  • 债务重组损失是否属于营业外支出
  • 税务变更需要哪些材料
  • 一般纳税人从小规模纳税人处进货
  • 不同外币之间的折算
  • 办公室饮用水可以浇花吗
  • 人工费收税吗
  • 如何防止虚开发票 等舞弊行为?
  • 网上报税申报成功之后该怎么操作
  • 应收账款抹零会计分录
  • 资产类科目余额在借方表示什么
  • 卫生许可证为什么需要两个健康证
  • 同城提入业务包括
  • 贸易公司买进卖出
  • 高新企业研发费用占销售收入的比例
  • 私立幼儿园收费归哪个部门管
  • php 时间差
  • launcher.exe是什么,每次开机都是否需要进行更改
  • 材料委托加工
  • vue怎么让按键启用和禁用
  • 应收款余额在借方什么意思
  • 来料加工企业需注意什么
  • 销售方运输发票怎么做账?
  • 图文详解水的画法
  • 图片格式转换pdf
  • element_at
  • 广告模板网站
  • 股权转让怎么做凭证分录
  • 施工企业应承担的主要责任和义务
  • 公务交通通讯补贴
  • 在计算应纳税所得额时,纳税人因自然灾害
  • 文化事业建设费报告表
  • 子公司注销时的账务处理
  • 残保金申报方式改变时间
  • 计提销售费用什么意思
  • 在筹建期间的费用属于什么
  • 农业免税企业开票有限额吗
  • 免税收入啥意思
  • 随同产品销售不单独计价包装物如何进行账务处理?
  • 收到合同预付款在账上怎么记
  • 累计折旧的计提会计分录
  • 部门费用的核算包括
  • 车辆购置税能抵扣企业所得税吗
  • 固定资产损失计入什么科目
  • 分期付款进项税额怎么算
  • 发票作废有什么后果
  • 本月合计结账
  • mysql查询时间语句
  • 利用rpm安装软件包时,应使用命令选项
  • win7系统c盘太满了,如何清理
  • winxp系统和win7系统有什么区别
  • linux咋用
  • macos 音量快捷键
  • redhat磁盘挂载
  • linux开启samba服务
  • linux乱码怎么办
  • windows wps
  • 第三人称控制器在平面上老掉
  • JavaScript数组删除元素
  • javascript中的document.write
  • java timer
  • 用批处理删除盘符
  • dos脚本 菜鸟教程
  • babel es6转es5原理
  • cocos2dx-3.2+lua 常用代码
  • jquery设置图片大小
  • 国家税务局公告2021年第3号
  • 深圳税务局工作时间表
  • 在深圳,企业房贷怎么办
  • 成都暖气费补贴
  • 社保卡手机缴费怎么交不了
  • 山西土地增值税清算
  • 十四五时期的税制改革重点是
  • 增值税纳税申报表附列资料(三)
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设