2012-08-17 132 views
6

我希望我的输入类型=按钮仅在按下时更改颜色。例如,如果我有一个白色按钮,我希望它只在按下时变成绿色,而当它不再按下时,我希望它返回白色。我如何在HTML和Javascript中做到这一点? (对不起我的英文不好,谢谢您)输入类型按钮在按下时是否改变颜色?

回答

5

该状态的CSS选择器称为:active

所以,如果你这样做:

input.btn:active { background:green }

,应该工作。

demo

+0

这只适用于鼠标按下。 – xdazz 2012-08-17 01:49:27

+1

在IE中似乎不起作用? – 2012-08-17 01:56:33

+0

@Trekstuff哪个IE?对于除IE以外的元素,仅在8.0版本中支持IE:https://developer.mozilla.org/en-US/docs/CSS/:active。其实在IE9中@PiotrJakubowski – 2012-08-17 02:02:04

1

普通的香草HTML + JavaSctipt:

<input type="button" style="background-color:white" value="Click Me" onmousedown="this.style.background='green'" onmouseup="this.style.background='white'" /> 

演示:http://jsfiddle.net/bqjzq/

+1

你为什么要做javascript,尤其是内嵌JavaScript的东西,如果你可以用CSS来做到这一点? – 2012-08-17 02:36:54

+0

请参阅下面我对Piotr解决方案的评论。纯CSS输入按钮在IE中不起作用。内联JS仅仅是一个例子,当然如果需要更复杂的函数,它应该是一个函数。无论如何,纯CSS处理

+0

我想找到一个解决方案,它也可以工作,如果你释放目标外的鼠标按钮 – 2014-05-28 16:36:13

1

对我来说,只有工作:

<style> 
input:active{ background-color:green} 
</style> 

另一种选择是规范ify on mouse over,仅用于按钮:

<style> 
input[type=button]:hover{ background-color: #46000D} 
<style>