【发布时间】:2015-12-06 08:51:47
【问题描述】:
我正在尝试自定义我的 boostrap 按钮颜色,包括悬停状态以及用户忙于单击按钮时(按钮按下)以及用户实际单击按钮后的颜色。我的 sass 看起来像这样:
// Button styling
button.btn {
color: $white;
background-color: $lightOrange;
border-color: $darkOrange;
}
button.btn:hover {
color: $white;
background-color: $mediumOrange;
border-color: $darkOrange;
}
button.btn:active, button.btn:target {
color: $white;
background-color: $darkOrange;
border-color: $darkOrange;
}
现在默认和悬停状态效果很好,但是当用户在按钮上单击鼠标时,它默认返回到引导程序默认的灰色。同样在单击按钮后,它仍然是灰色,而不是我指定的$darkOrange。那么简而言之,为什么:active 和:target 不起作用?
【问题讨论】:
-
不是您问题的答案,但您真的不应该将变量命名为 $white、$orange 等。将它们命名为 $primary、$secondary 等。
-
这真的是最佳实践吗?嗯..命名颜色对我来说似乎更直观。我会试一试你的建议,看看它在未来的项目中如何发挥作用。谢谢:)
-
尝试添加
!important。 -
:active 工作正常。松开鼠标按钮后,它就像:hover 一样工作。 :active 仅用于鼠标按下而不是单击。
-
有很多文章解释了为什么不应该这样做,最明显的一篇是如果你将它从 $white 中的颜色更改为黑色,你还必须更改所有变量的名称你用过的地方。因此,甚至一开始就使用变量完全没用。
标签: css button twitter-bootstrap-3 sass