仅使用 HTML、CSS 和 LESS,一个应用到一个元素的类无法“知道”另一个类的背景颜色是什么,以便将其淡出。这是不可能的。
但是,您仍然可以获得类似的效果,允许您链接类以创建新效果。
编写此代码的基本、普通的 CSS 方式如下:
.fire {
background: rgb(255,0,0)
}
.fire.level-beginner {
background: rgba(255,0,0,.5)
}
.fire.level-pro {
background: rgba(255,0,0,.25)
}
使用这个 CSS,如果一个元素有 class.fire
和 .level-beginner
,它会得到淡出的背景。
现在,这就是预处理器很酷的原因:我们可以让 mixins 负责创建嵌套类,因此添加一个带有所有嵌套子选项的新颜色(例如.water
with blue
)是一件简单的事情:
较少的:
.colorfade(@fade) {
background: fadeout(@color, @fade);
}
.colorfind (@color) {
background: @color;
&.level-beginner {
.colorfade(50%)
}
&.level-pro {
.colorfade(25%)
}
}
.fire {
.colorfind(red);
}
.water {
.colorfind(blue);
}
.earth {
.colorfind(green);
}
HTML:
<div class="fire level-beginner"></div>
<div class="water level-pro"></div>
<div class="earth level-beginner"></div>
演示