首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMACSS\BEM -如何正确处理图标样式?

SMACSS\BEM -如何正确处理图标样式?
EN

Stack Overflow用户
提问于 2017-12-11 19:20:15
回答 1查看 83关注 0票数 0

我有两个嵌套模块:

代码语言:javascript
复制
<div class="header">
.....
<i class="topIcon"></i>
......
</div>

我有两个单独的文件(因为它们是可重用的部分,可以在整个应用程序中单独使用),因此我希望将它们保持独立),在SMACSS术语中充当模块:

标题:

代码语言:javascript
复制
.header {
   /* header styles */
}

图标:

代码语言:javascript
复制
.topIcon {
 /* icon styles */
} 

现在,当topIcon具有header状态时,我想将一些样式应用到:hover中。

我可以将.header:hover .topIcon放在我的图标模块文件中并应用样式,但是从我的POV中它违反了SMACSS规则。

你有更好的建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-12 13:42:01

我经常用Sass‘&选择器来做

代码语言:javascript
复制
.topIcon {
  /* icon styles */

  .header & {
    /* modified styles when it's in header */
  }
  .header:hover & {
    /* modified styles when it's in header thats hovered */
  }
} 

结果将是

代码语言:javascript
复制
.topIcon {
  /* icon styles */
}
.header .topIcon {
  /* modified styles when it's in header */
}
.header:hover .topIcon {
  /* modified styles when it's in header thats hovered */
}

这样,我将图标相关的样式保存在图标文件中,但在根级别上避免使用“外文”类。

这种方法的一个缺点可能是,在头文件中还可能有另一条.header:hover规则,这可能会使其他人感到困惑,将其放置在何处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47759880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档