您如何看待在 CSS 中编写长链元素规范?

What do you think about writing long chains of element specification in CSS?

在我的 CSS 代码中,我一直使用长文本链来指定元素:

ol > li > ul > li > button:last-child {color: hsl(0, 0%, 30%);}

我还听说使用 类 是一种常见的做法。在我看来,这些长长的文本链并不是做到这一点的最佳方式,所以我想问问你们中的大多数人是如何在这种情况下编写代码的。

写的没有错:

ol > li > ul > li > button:last-child {color: hsl(0, 0%, 30%);}

但是,问题是你不应该无缘无故地制作你的 CSS 文件 - 冗长。这不是一个好习惯。

此外,> 运算符(子选择器)仅应在极其紧急的情况下使用。在您的场景中,以下代码也可以工作:

ol ul li button:last-child{...}

CSS中有50多个选择器,dom中有100多个元素。有必要每个人都过一遍吗?对吗 - 是的,有必要吗? - 不!

您也可以将代码编写为:

html body ol > li > ul > li > button:nth-last-of-type(1) {...}

但是,你为什么不写?那么,这也是对的!

事情甚至在SASS(CSS预处理器),建议你应该避免,超过2级的前任!即使您使用额外的长度也是正确的,但只需添加一个额外的 class(您想要进行更改的地方)...如果不需要,不要在选择器之后继续添加选择器!只是让你的代码更小——这样,即使在 code-minification 之后你的文件也有最小长度,而不是不必要的大。