位置: 编程技术 - 正文

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

  • 要补交税怎么办
  • 商业汇票到期没有收到款
  • 有没有退股一说
  • 劳务派遣公司简介模板范文
  • 房地产企业预缴增值税怎么计算
  • 关于年底双薪和分红问题的处理
  • 银行收回客户误扣的费用怎么处理?
  • 原材料当废品卖怎么处理
  • 员工就诊发票可以报销吗
  • 代收电费可以开发票吗
  • 医疗器械销售税负率是多少
  • 发生广告费用会计分录
  • 借款利息资本化金额
  • 购买少数股东权益的会计处理
  • 合同负债属于什么费用
  • 电子税务局如何查询已开发票
  • 利润表有盈利能力吗
  • 一般企业利润表格式
  • 单位探望病人如何报销费用?
  • 无法收回的账务处理
  • 收到退回增值税和附加税怎么处理
  • 新版关闭edge地址栏建议
  • 如何计算每个月的天数
  • 税会差异分为哪几类
  • 公司成立之初
  • 教学用品列入什么费用
  • vue中使用v-for指令时 为什么要加 key解释正确的是
  • 换购商品分录怎么做
  • 出租的土地
  • 职工福利费会计科目走管理费用
  • 债劵利息怎么计算
  • puppetm
  • 职工教育经费列支范围规定
  • 塔拉基之死
  • 职工薪酬纳税调整明细表怎么填写
  • 应税行为包括销售货物吗
  • 收取职工交来伙食费如何入账
  • 西安微信公众号开发
  • 微信支付开发步骤
  • 进项税年末结转分录
  • 一文详解卡尔曼人物形象
  • mysqlmha高可用
  • php数学
  • qt5开发android
  • 残保金计提和缴纳分录
  • python slic
  • PostgreSQL中常用的时间日期脚本使用教程
  • MySQL中使用什么语句来更新表中的记录
  • 企业所得税的扣除是什么意思
  • 一次性计入当期成本费用是什么意思
  • 未分配利润分配后在报表如何体现
  • 收到退回以前年度税款
  • 用银行存款支付本季度短期借款利息
  • 应收账款结算方式有几种
  • 支付上月采购货款
  • 银行承兑汇票去哪个银行承兑
  • 建筑公司可以收工程款发票吗
  • 各单位应当根据需要设立专职或者兼职
  • 记账发生错账怎么办
  • 提高系统能力
  • 电脑右下角windows设置在哪
  • linux的简单使用
  • win8cp
  • 高效快捷键
  • fsrremos.exe
  • 常用的linux操作
  • 保存 linux
  • Linux如何使用命令
  • 使用时间
  • 给a标签加css的伪类
  • 10个JavaScript中易犯小错误
  • js中的三种弹出消息提醒的命令
  • 深入理解javascript特性.pdf
  • jQuery基本选择器
  • react navigate
  • 不同地区的社保卡通用吗
  • 江苏国家税务机关电话
  • 视同销售行为的进项税额抵扣方法?
  • 武汉税务局官网查询系统
  • 上海各区财政收入
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设