BEM,级联样式和类炎

  • 本文关键字:样式 级联 BEM bem
  • 更新时间 :
  • 英文 :


我正在尝试返回到网络的前端编码。我上次尝试写CSS是10年前,然后回到那个时候,有一种称为 Classisitis 的疾病。我对血管炎的理解可能是错误的,但是我认为不要用太多的CSS课程乱扔html文档,并尝试使用级联规则来保持您的HTML标记清洁和苗条。

例如,这可能是类炎

<ul class="feed">
<li class="item">
<img src="" class="thumbnail"/>
<a href="" class="read-more">Read More</a>
</li>
</ul>

使用CSS中级联规则的优势,我们可以删除除class="feed"以外的所有类,然后编写CSS规则,例如

.feed li img {/*style*/}
.feed li a {/*style*/}

以这种方式,内容和演示文稿之间存在更大程度的分离。

但是,我承认在非常大的Web应用程序上,很容易忘记什么级联对于什么,当其他团队成员加入该项目时,他们更有可能难以抓住整个前端架构。如果您没有选择标记您的类的最佳根元素,则在尝试重新系数时会变得更具挑战性。

我认为BEM非常有用,因为班级命名惯例清楚地标识了每个块和元素应该做的事情。,但这并不意味着您正在重新引入阶级炎,并且也承认将演示与内容分开是无法实现的幻想?,所以这是我的问题。

注意 - 我认为有些人将课堂炎定义为重复一个块中的班级名称(例如,父母,孩子和大孩子都提到了同一班级)。不确定这是当时的行业所接受的定义,还是类化学炎的定义更为通用,意味着当您可以使用级联规则时引入CSS类/ID。

最近的事情说,炎症,分层,非语义元素以及鼓励介绍和内容合并的事物是一件好事吗?

OOCS和BEM是几年前出现的两种CSS方法。他们扭转了良好的做法。

CSS代码用于打扮内容块。想象一下,我们必须为阿尔伯特和尼古拉斯创造两种不同的衣服。幼稚的方法是为这两套衣服命名:"阿尔伯特的习惯" "尼古拉斯的习惯" 。这是根据内容的语义命名。

然后皮埃尔到达,我们必须打扮他。但是我们的命名阻止了重复使用。即使这与阿尔伯特的习惯非常相似,也有必要创建一个新的"皮埃尔的习惯"

如果服装设计成为我们的业务,那么我们将改变我们的工作方式,使我们更容易重复工作。我们将故意避免用内容(穿着的人)命名。我们更喜欢自己命名衣服。它可以是抽象的名称:"习惯001" "习惯002" 等。为什么不呢?这将是可重复使用的。但是,更直观的命名将需要减少记忆的努力,我们将按照我们所看到的命名:"大而蓝色的习惯" "小而广泛的习惯" 等等。因此,阿尔伯特(Albert)会穿"大而蓝色的习惯" 而不是"艾伯特的习惯" 。这不是关于混合演示和内容。用于命名包装的语义不再是包装的语义,而是包装的语义。

使用内容语义的命名,CSS代码实际上完全链接并取决于HTML代码。虽然,随着包装的命名,CSS代码变成了一个本身存在的代码,与HTML代码分开,这允许HTML代码中的不同块可以更好地重复使用相同的Appareance。

最新更新