首页 > 解决方案 > 在 scss 中重用另一个类的特定属性

问题描述

可以使用 @extend 方法重用 scss 中另一个类的所有属性。

.class1 {
   height: 10px;
   width: 10px;
}

.class2 {
   @extend .class1;
   border-color: #000000;
}

这将导致

.class1, .class2 {
   height: 10px;
   width: 10px;
}

.class2 {
   border-color: #000000;
}

是否可以仅重用另一个类的自定义属性?就像是

.class2 {
   @extend .class1.height;
   border-color: #000000;
}

结果是这样的

.class1 {
   height: 10px;
   width: 10px;
}

.class2 {
   height: 10px;
   border-color: #000000;
}

非常感谢。

标签: sassextend

解决方案


你可以,但为此你需要扩展一个占位符而不是一个类。您将所需的属性抽象为占位符,并应用于所需的类:

%custom-height {
   height: 10px;
}

.class1 {
   @extend %custom-height;
   width: 10px;
}

.class2 {
   @extend %custom-height;
   border-color: #000000;
}

这将导致:

.class1, .class2 {
   height: 10px;
}

.class1 {
   width: 10px;
}

.class2 {
   border-color: #000000;
}

推荐阅读