【发布时间】:2016-05-19 19:51:07
【问题描述】:
是否有像currentcolor 这样的关键字可以让我们在默认状态下获取类的颜色?
例如,我正在尝试创建可重复使用的按钮样式,而在我尝试创建 :hovered 状态之前,currentcolor 关键字有很大帮助。
.outline-btn {
background-color: transparent;
border: 1px solid currentColor;
padding: 0.5em 1.5em;
}
.rounded-btn {
border-radius: 50px;
}
默认状态看起来是我们想要的方式,更改 color 或 font-size 也会调整其余属性。
但我们希望 :hovered 状态反转颜色(在本例中为白色文本和橙色背景)
.outline-btn:hover, .outline-btn:active, .outline-btn:focus {
background-color: currentcolor;
color: white;
}
但由于在这种状态下color 变为白色,其他所有内容也变为白色。
有没有一种方法可以实现我们想要的行为,而无需为我们想要的不同按钮样式创建多个类?
悬停效果:
另外我忘了提到我正在使用SCSS,如果有帮助的话。
感谢您的宝贵时间 :)
【问题讨论】:
-
这听起来有点像您想使用
LESS或SASS来构建您的CSS -
@Andrew 我正在使用
SCSS,但不是很熟悉。SCSS中是否有可以解决此问题的功能? -
这里有没有反转背景颜色的关键字...没有。
currentcolor正是它所说的...... 当前颜色。 -
如果有一些额外的包装元素,或者更确切地说是按钮标签的内部跨度,这将相当容易,但当然,我们真的不喜欢使用额外的标记。使用 SCSS,您实际上所做的只是将一些硬编码的值移动到预处理器变量中,这也很好,但这取决于您当前声明这些颜色值的位置。
-
@Paulie_D 是的,我并没有完全试图反转颜色。就在
:hover中,它应该使用之前的颜色作为背景颜色和白色文本。