摘要:它们都错误地使用了波浪选择器,并造成了很多地方的代码臃肿。大家可能以前也都遇到或者使用过波浪选择器,毕竟它作为选择器已经很长时间了,甚至都支持。我的经验里,使用波浪选择器一般都是通过而不是来选择兄弟元素的。
原文:The tilde CSS selector, use carefully!
最近我的一些项目都遇到了一些类似的样式问题。它们都错误地使用了波浪选择器,并造成了很多地方的CSS代码臃肿(CSS Bloat)。大家可能以前也都遇到或者使用过波浪选择器,毕竟它作为CSS选择器已经很长时间了,甚至IE7都支持。波浪选择器用来选择所有匹配到的兄弟元素。
一个例子效果:
这里我们的波浪选择器匹配了.something-important的所有兄弟元素,item2,3,4。
它太容易制造出脆弱的代码了。
我的经验里,使用波浪选择器一般都是通过type而不是class来选择兄弟元素的。这样会造成你不知道这个选择器写这儿到底是干嘛用的。上面这个例子我们就不知道.something-important ~li选择到的
通常来说多敲几个字给每个元素都加上class可以给未来的维护减少很多不必要的麻烦。
用武之地“在写代码的时候,永远假设最后一个维护你的代码是一个知道你家住在哪儿的沉默的精神病人。写点人读得懂的代码。——John Woods”
待编辑
避免CSS代码臃肿我认为这篇文章并不仅仅就是告诉大家避免使用波浪选择器,更多的是让大家知道遇到CSS的问题时不要从加上更多的CSS的代码开始。这从来都不是保持代码可维护性的方法。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/115221.html
有哪些选择器 基本选择器 通配选择器(*) ID选择器(#ID) 类选择器(.className) 元素选择器(tagName) 后代选择器(a b) 子元素选择器(a>b) 相邻后面兄弟元素选择器(a + b) 通用后面兄弟选择器(a 〜 b) 群组选择器(selector1,selector2,...) 这里面平时不太常用的选择器有相邻后面兄弟选择器和通用后面兄弟选择器首先,很多资料上把它...
有哪些选择器 基本选择器 通配选择器(*) ID选择器(#ID) 类选择器(.className) 元素选择器(tagName) 后代选择器(a b) 子元素选择器(a>b) 相邻后面兄弟元素选择器(a + b) 通用后面兄弟选择器(a 〜 b) 群组选择器(selector1,selector2,...) 这里面平时不太常用的选择器有相邻后面兄弟选择器和通用后面兄弟选择器首先,很多资料上把它...
2017-07-28 前端日报 精选 React的新引擎—React Fiber是什么?Chromeless 让 Chrome 自动化变得简单【译】JavaScript属性名称中的隐藏信息前端测试框架 JestES6中的JavaScript工厂函数Why Composition is Harder with ClassesGET READY: A NEW V8 IS COMING, NODE.JS...
阅读 2375·2021-09-30 09:47
阅读 1366·2021-09-28 09:35
阅读 3236·2021-09-22 15:57
阅读 2484·2021-09-22 14:59
阅读 3633·2021-09-07 10:25
阅读 3068·2021-09-03 10:48
阅读 3035·2021-08-26 14:14
阅读 932·2019-08-30 15:55