1

例如,我有一个名为:

.main-company-logo {
  background: url(../images/logo_company.png);
  width: 88px;
  display: block;
  text-indent: -9999999px;
  height: 60px;  
} 

这个块恰好位于标题中,但也可以在任何地方。现在,如果它在标题中,它需要向左浮动并且还有一个边框。如果是这样,这是正确的做法吗:

.header-main { [properties] }
  .header-main .main-company-logo {
    float: left;
    border: 1px solid #FFF;
  }

或根据 BEM:

.main-company-logo { [properties] }
  .main-company-logo--main-header {
    float: left;
    border: 1px solid #FFF;
  }

两者哪个更好?

4

1 回答 1

2

第一个没问题。但是,如果您想要一个完全独立于上下文的解决方案,我建议您在带有浮动和边框的徽标的标题中制作一个容器,并将徽标放在那里。

.header-main { [properties] }
.header-main--logo {
    float: left;
    border: 1px solid #FFF;
}
.main-company-logo { [properties] }

并像使用它一样

<div class="header-main">
    <div class="header-main--logo">
        <img class="main-company-logo"/>
    </div>
</div>

另一种方法应该是使用这样的mixin

<div class="header-main">
    <img class="header-main--logo main-company-logo"/>
</div>

有这样的CSS

.header-main { [properties] }
.header-main--logo.main-company-logo {
    float: left;
    border: 1px solid #FFF;
}
.main-company-logo { [properties] }
于 2013-10-07T11:02:01.747 回答