当前位置: 萬仟网 > IT编程>网页制作>CSS > 详解如何编写高效的 CSS 选择符

详解如何编写高效的 CSS 选择符

2017年11月17日 09:19  | 萬仟网IT编程  | 我要评论

最初写CSS的时候,觉得很简单,写得天马行空。后来慢慢的发现,没有规则的瞎写,虽然也能实现效果,但是在实际开发中可能会多做无用功或是重复做功,并且CSS并不高效。于是后期开发时就特意按照一定的规则,尽可能的写出高效的,可复用的CSS,总结一下,主要是是以下几个方面。

首先看一小段 CSS 代码:

#menus > li { font-size: 14px; }

可能大家都会猜想浏览器会使从左到右匹配上面的规则,我们会想象浏览器先找到唯一的 id 为 menus 的元素,然后把样式应用到其直系子元素 li 元素上。这看起来好像还挺高效的。

但是,事实上,CSS 选择符是从右到左进行匹配的。所以,上面的这条规则并不高效,浏览器必需遍历页面上的每个 li 元素并确定其父元素的 id 是否为 menus。

样式系统从最右边的选择符开始向左匹配规则。只有当前选择符的左边还有其他的选择符,样式系统就会继续向左移动,直到找到和规则匹配的元素,或者因为不匹配而退出。

编写高效的CSS选择符有以下常用规则:

一、避免使用通配规则

除了传统意义上的通配选择符之外,我们把相邻兄弟选择符、子选择符、后代选择符合属性选择符都归纳到通配规则分类下,推荐仅使用 ID、类和标签选择符。

二、不要限定 ID 选择符

在页面中一个指定的ID只能对应一个元素,所以没有必要添加额外的限定符。例如,div#header是没有必要的,应该简化为#header。

三、不要限定类选择符

不要用具体的标签限定类选择符,而是根据实际情况对类名进行扩展。例如,把li.chapter改成.li-chapter,或是.list-chapter更好。

四、让规则越具体越好

不要试图编写像 ol li a 这样的长选择符,最好是创建一个像.list-anchor一样的类,并把它添加到适当的元素上。

五、避免使用后代选择符

通常处理后代选择符的开销时最高的,而使用子选择符也可以得到想要的结果,并且更加高效。

六、避免使用标签—子选择符

如果有像#menus > li > a这样的基于标签的子选择符,那么应该使用一个类来关联每个标签元素,例如.menus-item。

七、质疑子选择符的所有用途

检查所有使用子选择符的地方,然后尽可能用具体的类取代它们。

八、依靠继承

了解哪些属性可以通过继承而来,然后避免对这些属性重复指定规则。例如,对列表元素而不是每个列表元素指定list-style-image。请参考继承属性的列表来了解每个元素的可继承的属性。

摘自《高性能网站建设进阶指南——Web开发者性能优化最佳实践》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

  • Web前端——Html常用标签及属性

    html 常用的标题等标签就不记录了,只记录一下比较少见的标签以及属性 表格 table td 单元格 tr 表的行 th 表头 td或th可以下面... [阅读全文]
  • 如何成为一名优秀的web前端工程师

    如何成为一名优秀的web前端工程师

    何为:前端工程师? 前端工程师,也叫Web前端开发工程师。他是随着web发展,细分出来的行业。 Web前端开发技术主要包括三个要素:HTML、CSS... [阅读全文]
  • <img>标签--基础标签

    [2019.06.22 学习笔记1] 1.<img>图片标签,自闭合标签 2.必要属性src,src="图片地址" ... [阅读全文]
  • DTD文档模型是什么

    [2019.06.22 学习笔记3] 1.DTD文档模型是DOCTYPE文档声明,是Doucument Type Definition的英文缩写,是... [阅读全文]
  • Web前端——css

    Web前端——css

    css 推荐的样式编写顺序: 1. Positioning:定位 2. Box model:盒子模型、大小等 3. Typographic:文字系列... [阅读全文]
  • 博客园美化主题需要这几步

    博客园美化主题需要这几步

    博客园美化主题需要这几步 本人现用的这套博皮是根据bndong的博客进行修改的,且配置需要时间,有兴趣可以直接访问bndong博客,查看置顶博文进行... [阅读全文]
  • iconfont采坑

    iconfont采坑

    1. iconfont采坑 1.1. 前言 1. 使用iconfont过程中踩过坑特此记录 2. 不知道iconfont的这里也简单介绍一笔,阿里开... [阅读全文]
  • css网页布局模板

    效果如图: 菜鸟教程(runoob.com) 我的网页 重置浏览器大小查看效果。 我的网页 重置浏览器大小查看效果。 链接 链接 链接 链接 文章标... [阅读全文]
  • css基础4

    今天是2019年6月21日,周五了。在这里写上一篇随笔,主要内容是css基础中的一些细节部分,话不多说,直接上! 一、背景渐变: backgroun... [阅读全文]
  • CSS filter 属性

    CSS filter 属性

    filter 将模糊或者颜色偏移等图像效果用于元素,通常用于调整图像,背景和边框的渲染 css 标准中已内置一些预定义效果的函数,也可通过url使用... [阅读全文]

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com