国外大佬的看法
我真的很困惑,就像我对很多人盛赞的热门时尚废话一样,我不明白为什么有人能看到CSS嵌套的价值。在LESS/SASS/SCSS中,它只会使代码更加混乱,更难以跟踪和调试,总之,只会增加更多的步骤和考虑,而没有任何实际的好处。
但有趣的是,你会看到一些明显是为了让它看起来好看而堆叠的例子。你会看到一些垃圾代码,比如:
代码语言:javascript复制.nesting {
color: hotpink;
>.is {
color: rebeccapurple;
>.awesome {
color: deeppink;
}
}
}
当你依赖制表符来保持事情的整洁时,必须不停地查找代码中实际应用的选择器/组合器规则...那么优势在哪里呢?
而且,如果你进入像实际的完整代码库这样的东西,它真的会崩溃。每个选择器字符串使用一个属性是堆叠的。现实世界中?即使是像菜单这样的小东西:
代码语言:javascript复制#mainMenu {
ul {
list-style:none;
li {
display:inline;
a {
display:inline-block;
padding:0.5rem 1rem;
color:var(--menuColor);
border-radius:0.5rem;
transition:background 0.3s, color 0.3s, scale 0.3s;
}
a:hover,
a:focus {
scale:1.2;
background:var(--menuHoverBg);
color:var(--menuHoverColor);
}
}
}
}
当你理解伪状态时,如果没有试图在代码中找到那些内部的锚点而不是在整个代码并尝试弄清楚所有的缩进,你怎么知道它们在哪里?那不是清晰的代码!
相比之下:
代码语言:javascript复制#mainMenu ul {
list-style:none;
}
#mainMenu li {
display:inline;
}
#mainMenu a {
display:inline-block;
padding:0.5rem 1rem;
color:var(--menuColor);
border-radius:0.5rem;
transition:background 0.3s, color 0.3s, scale 0.3s;
}
#mainMenu a:hover,
#mainMenu a:focus {
scale:1.2;
background:var(--menuHoverBg);
color:var(--menuHoverColor);
}
这是一千倍更清晰的代码,因为你不必去寻找父选择器是什么!每个属性和值的组合都有完整的声明,说明它在哪里、是什么和如何应用的!规则越大,越多,就越是如此!
极简主义和字节痴迷之间有一种区别...后者闻起来像是“哇哇眼睛不想打字”的味道,这种情况下,也许应该考虑一下你是不是从事错误的业务。
尽管最热烈欢呼的人似乎是那些“在每个该死的元素上添加垃圾类”的傻瓜,那么他们从组合器或嵌套中得到了什么效用呢?
这就像他们在寻找LESS / SASS / SCSS这样的垃圾,以及为什么人们会寻找HTML / CSS框架的1997年实践的纪念碑一样。这表明他们对HTML的最基本用法以及CSS与HTML的区别一无所知。
它肯定不会提高代码的清晰度。
关于我的看法
以上是这位大佬的看法,以下是我对这个问题的看法,欢迎大家来探讨关于“css嵌套语法”的问题。
我认为这个问题并不是非黑即白的。CSS嵌套语法可以使代码更具可读性和易维护性,但如果过度使用,也可能会导致代码的冗长和可读性下降。
对于大多数项目来说,选择使用CSS嵌套语法还是不使用,应该取决于具体情况。在某些情况下,使用CSS嵌套语法可以使代码更加简洁和易于理解,而在其他情况下,使用它可能不那么合适。
那么如何选择呢,以下是我的一些建议:
1. 项目规模和复杂度:如果项目规模较小且样式较简单,使用CSS嵌套语法可能会增加代码的冗长和复杂度,反而降低了代码的可读性。但是,对于大型项目和复杂样式,使用CSS嵌套语法可以使代码更加结构化和易于管理。
2. 开发团队的技能水平:如果开发团队中的成员都熟悉CSS嵌套语法并且能够正确使用它,那么使用它可能会使开发更加高效。但是,如果团队中的成员不熟悉CSS嵌套语法或者误用它,那么可能会导致代码的错误和混乱。
3. 个人喜好和项目要求:有些开发人员喜欢使用CSS嵌套语法,因为它可以使代码更加优雅和易于阅读。但是,有些项目可能对代码的性能和可维护性有更高的要求,此时可以考虑不使用CSS嵌套语法。
总之,选择是否使用CSS嵌套语法应该根据项目的实际需求和开发团队的技术水平来决定。如果正确使用,它可以使代码更加优雅和易于维护,但是过度使用可能会导致代码的冗长和可读性下降。我们应该根据项目的实际需求和具体情况进行权衡和取舍,而不是一味地认为某种方法是完全无用的垃圾。
结束
由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。