书签 分享 收藏 举报 版权申诉 / 20

类型CSS规范命名大全概论.docx

  • 文档编号:7378228
  • 上传时间:2023-01-23
  • 格式:DOCX
  • 页数:20
  • 大小:143.90KB

现在要给这里的ul标签一个样式,比如说padding-left:

25px;那么下面四种写法哪个渲染速度最快?

#test.test{},ul.test{},#testul{}以及.test{}。

如果单纯的ul与.testPK,我还真拿不定谁的渲染速度更快些。

但是,一旦牵扯到层级与标签,我100%确定,.test这种最直接的命名方式渲染效率是最高的。

要知道,CSS渲染元素和使用JavaScript获取页面元素那是完全不一样的。

如果是使用JavaScript获取DOM元素,则#testul{}速度是最快的,先id获取,再tag获取,这些可都是JavaScript内置的方法。

但是,CSS的渲染方式则是属于外太空系的了,《高性能网站进阶指南》一书曾提到CSS的渲染方式是“从右往左”渲染的,就拿#testul{}举例,先渲染页面上所有的ul标签,再去寻找id为test的元素,所以,出现#testdiv{}这种写法的人都是傻×的,页面先渲染id为test的元素?

非也!

先渲染页面上所有的div,再去寻找其老爸有没有id为test的元素。

由于这种渲染差异最大就200~300毫秒(补充:

这里的差异不是说单纯一个样式的差异,而是这些写法泛滥的页面的全部渲染,其渲染差异数据可以参见“翻译-不同CSS技术及其CSS性能”一文),我们人一般是感觉不到的。

所以,长久以来,也都不以为然。

但是,我是绝对容不下这种写法的,还有,要是让我看到类似于ul#test{}这样子的命名,不好意思,面试肯定过不了。

所以,CSS命名,只要出现了层级,出现了标签,就是一次额外的渲染,层级越多,渲染的开销也就越大,这就是为什么一些前辈的文章会建议要尽量避免过深的层级。

这也是为什么要“无层级”,“无标签”。

对于原则第一条“无ID”,其实与性能没有多大关系,只是一般ID都与JavaScript有奸情,如果再牵扯到CSS样式,如此复杂的三角关系,日后不好处理啊。

四、“三无原则”遗留之样式冲突问题

正如上面讲的,层级,标签可以避免样式冲突,虽然“面向属性的命名”不存在冲突问题,但是,页面上很多样式是无法分离使用“面向属性的命名”的,此时,一不能有层级,二不能有标签,如果避免冲突呢?

首先,规范。

项目组所有人的命名方法,习惯都要统一。

其次,也是实际的做法,同一内容,使用同一前缀。

就如上面的那张图片所示,所有class同一使用od前缀,这样,就绝不会与其他页面的CSS产生冲突了。

现在,还隐藏着一个会让人心存疑惑的遗留问题。

如下:

上图中,很多个链接全部存放在一个标签中,全部都是a标签,按照我的“三无原则”,不能使用层级,那么,我这里的每个a标签都得附一个.index_list_a{}这样子的命名吗,这样子repeat下来,页面HTML代码岂不是很大,直接来个.index_list_boxa{},岂不是页面HTML更加清爽。

确实有理。

实际上,按照我个人实践的经验,这类细小重复的列表元素的样式都是比较简单的,不要忘了,精简高效的CSS命名准则之一的“分离与面向属性命名”,所以,对这里的a标签进行面向属性的命名,权衡后期的重用性和HTML代码开销,还是直接针对a标签进行简单命名是最佳解决方案。

但是,不排除这类最内层标签且重复元素的样式会很复杂,此时,使用层级与标签,或许是更好的做法,但这只存在于一些非常特殊的情况。

对了,我们看看点评网是如何对最内层且重复的a标签进行处理的,如下图:

点评网是使用的一个大写的”B”作为此样式,无论这里的”B”是有background之意,还是邪恶的***之意,其命名比“面向属性命名”更甚一筹,可以说是接近真正意义上的nothing,后面可以跟任意属性,用在任意页面,这就是“无”哲学,“无”的境界。

//zxx:

点评网的这个命名让我闻到了一点Google的气息

五、结语

现在,来个简短的总结,精简高效的CSS命名的关键字有“分离”,“统一前缀”,方法为“面向属性的命名”,准则为“无层级、无标签”。

其中,“分离”是“面向属性命名”的基础。

“面向属性命名”和“无层级、无标签”属于两个不同的系列,一个针对短命名属性,一个针对长命名属性。

但是,两个又互相依存。

没有“面向属性命名”,“无层级、无标签”命名最后是以不堪重负,HTML膨胀致死结局。

而仅仅是“面向属性命名”,前端开发人员会因维护过劳喷血而死。

总之,两者缺一不可。

上述所有内容,都是根据自己的开发总结出来的东西,个人观点,经验之谈。

每个人的成长不同,工作环境不同,必然在看到一些问题上会有差异,欢迎交流与讨论。

我资历尚浅,文中难免会有不准确的地方,欢迎指正。

我的这套准则是建立在自己的一套CSS架构上的,我自己用的是非常开心的,而且效果非

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
CSS 规范 命名 大全 概论
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:CSS规范命名大全概论.docx
链接地址:https://www.bdocx.com/doc/7378228.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开