利用CSS vs Sass(SCSS) - 基类问题和冗余

Dyn*_*Dan 1 css sass precompiler oocss

我正在尝试使用SCSS清理我的CSS以使其更干净.

标准CSS:

.dark-hr,
.light-hr { 
  width: 100%;
  height: 1px;
  margin: 15px 0px;
}
.dark-hr {
  background-color: #595959;
}
.light-hr {
  background-color: #cccccc;
}
Run Code Online (Sandbox Code Playgroud)

vs SCSS:

.generic-hr { 
  width: 100%;
  height: 1px;
  margin: 15px 0px;
}
.dark-hr {
  @extend .generic-hr;
  background-color: #595959;
}
.light-hr {
  @extend .generic-hr;
  background-color: #cccccc;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法避免创建不会被使用的'generic-hr'类?我希望某种巢能很好地运作.在这种情况下,CSS绝对比SCSS更清晰,更易读.

理想情况下,我需要这个在SCSS中工作:

.## {
  // base class that is not outputted
  .dark-hr {
    //attributes the extend the base class '.##'
  }
  .light-hr {
    //attributes the extend the base class '.##'
  }
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

 .dark-hr, .light-hr {
   //shared attributes defined by '.##'
 }
 .dark-hr {
   // overrides
 }
 .light-hr {
   // overrides
 }
Run Code Online (Sandbox Code Playgroud)

cim*_*non 5

你想要使用的是一个扩展类(我称之为"静默类"),它通过使用%而不是a 来表示..

hr%base { 
  width: 100%;
  height: 1px;
  margin: 15px 0px;
}
.dark-hr {
  @extend hr%base;
  background-color: #595959;
}
.light-hr {
  @extend hr%base;
  background-color: #cccccc;
}
Run Code Online (Sandbox Code Playgroud)