CSS最佳实践:添加修改类或创建全新类

CSS最佳实践:添加修改类或创建全新类,css,Css,我发现自己现在在写css的方式上有点改变,我不确定这是好是坏。 假设我有一个类容器 .container { display: block; border: 1px solid red; padding: 20px; height: 400px; } 现在,让我们假设在一些地方,我还想要一个更小的容器,比如说150px的高度。最好的办法是什么 以前我会上一节课: .container-small { display: block; border: 1px solid red; padding:

我发现自己现在在写css的方式上有点改变,我不确定这是好是坏。 假设我有一个类
容器

.container { display: block; border: 1px solid red; padding: 20px; height: 400px; }
现在,让我们假设在一些地方,我还想要一个更小的容器,比如说150px的高度。最好的办法是什么

以前我会上一节课:

.container-small { display: block; border: 1px solid red; padding: 20px; height: 150px; }
然而,很明显,现在我的css文件中有了复制。因此,最近我开始使用修饰符类,如
small
,并将其添加到
容器旁边的HTML中,然后将其添加到css文件中,如下所示:

.container.small { height: 150px } 
我可以预见的问题是,如果我有另一个类,如
banner
,我将
small
类添加到该类中,但将其设置为90px高度,这可能会让其他人对我的项目感到困惑?因为
small
在不同的地方做着不同的事情。这已经是一个被接受的范例了吗?还是每次我都应该使用新类,就像使用
small
一样,但每个类都有新名称

.container-small { height: 150px }

我喜欢在每个元素中添加
small
big
wide
或任何修改类的简单方法,但是有什么具体原因说明这是个坏主意吗?我认为使用这样的修改类会稍微慢一点,因为css在丢弃标记之前会以一堆
小的
标记为目标,因为它们位于错误的元素旁边,但这可能是微不足道的


最好的做法是什么?

也许你应该像这样将这些类分开

仅放置文本大小、颜色和类型的横幅

小的将只有大小和可能的边界颜色和大小

容器将具有与上面相同的flex容器属性

等等等等等等

class="banner small"
class="container big"
class="inside_container small"

也许你应该像这样分开上课

仅放置文本大小、颜色和类型的横幅

小的将只有大小和可能的边界颜色和大小

容器将具有与上面相同的flex容器属性

等等等等等等

class="banner small"
class="container big"
class="inside_container small"

我认为你应该从阅读CSS方法开始。OOCSS、BEM、SMACSS有三种不同的方法,至少它们是最流行的。例如,你可以从这个开始

我认为你应该从阅读CSS方法开始。OOCSS、BEM、SMACSS有三种不同的方法,至少它们是最流行的。例如,您可以从这一点开始,最佳做法会随着年份和谈话对象的不同而变化,但一种常见的做法是使用名称空间,如

.container.container small{}

就我个人而言,我是这样做的

.container.small{}


然后使用Less或SASS嵌套它,以保持可读性。

最佳做法会随着年份和谈话对象的不同而变化,但一个常见的做法是使用名称空间,如

.container.container small{}

就我个人而言,我是这样做的

.container.small{}


然后使用Less或SASS嵌套它以保持可读性。

您看过BEM吗?这是在HTML和CSS中命名类的比较流行的方法之一——这个问题要么过于宽泛,基于观点,要么需要讨论,因此对于堆栈溢出来说是离题的。如果您有一个具体的、可回答的编程问题,请提供完整的详细信息。您可以将sass与BEM结合使用,以获得更结构化和有组织的代码。有像占位符和mixin这样的功能可以用来扩展所需的属性来修改特定的类。你看过BEM吗?这是在HTML和CSS中命名类的比较流行的方法之一——这个问题要么过于宽泛,基于观点,要么需要讨论,因此对于堆栈溢出来说是离题的。如果您有一个具体的、可回答的编程问题,请提供完整的详细信息。您可以将sass与BEM结合使用,以获得更结构化和有组织的代码。可以使用占位符和mixin等功能来扩展所需的属性以修改特定类。