输入类型=按钮上的背景颜色:IE 中的悬停状态

Posted

技术标签:

【中文标题】输入类型=按钮上的背景颜色:IE 中的悬停状态【英文标题】:Background color on input type=button :hover state sticks in IE 【发布时间】:2011-08-03 11:09:54 【问题描述】:

我有一个 input type=button 设置了背景颜色和一个不同的 :hover - 请参阅 http://jsfiddle.net/hc2Eu/3/

在 IE(所有版本)中 - 当我将鼠标放在按钮上时,移开按钮,然后 mouseup - 背景颜色保持在 :hover 设置中,直到您再次将鼠标悬停在它上面。

有解决办法吗?最好不要用js? (不需要IE6)

【问题讨论】:

【参考方案1】:

您需要确保图像在前,并在调用背景图像后用逗号隔开。那么它确实有效:

    background:url(egg.png) no-repeat 70px 2px #82d4fe; /* Old browsers */
background:url(egg.png) no-repeat 70px 2px, -moz-linear-gradient(top, #82d4fe 0%, #1db2ff 78%) ; /* FF3.6+ */
background:url(egg.png) no-repeat 70px 2px, -webkit-gradient(linear, left top, left bottom, color-stop(0%,#82d4fe), color-stop(78%,#1db2ff)); /* Chrome,Safari4+ */
background:url(egg.png) no-repeat 70px 2px, -webkit-linear-gradient(top, #82d4fe 0%,#1db2ff 78%); /* Chrome10+,Safari5.1+ */
background:url(egg.png) no-repeat 70px 2px, -o-linear-gradient(top, #82d4fe 0%,#1db2ff 78%); /* Opera11.10+ */
background:url(egg.png) no-repeat 70px 2px, -ms-linear-gradient(top, #82d4fe 0%,#1db2ff 78%); /* IE10+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#82d4fe', endColorstr='#1db2ff',GradientType=0 ); /* IE6-9 */
background:url(egg.png) no-repeat 70px 2px, linear-gradient(top, #82d4fe 0%,#1db2ff 78%); /* W3C */

【讨论】:

【参考方案2】:

<input type="button"> 可能有修复 - 但如果有,我不知道。

否则,一个不错的选择似乎是将其替换为精心设计的 a 元素。

示例:http://jsfiddle.net/Uka5v/

.button 
    background-color: #E3E1B8; 
    padding: 2px 4px;
    font: 13px sans-serif;
    text-decoration: none;
    border: 1px solid #000;
    border-color: #aaa #444 #444 #aaa;
    color: #000

优点包括a 元素将在不同(旧)版本的 Internet Explorer 之间保持一致的样式,而无需任何额外工作,而且我认为我的链接看起来比那个按钮更好:)

【讨论】:

我已经想到了 - 但我正在处理一个预先存在的系统,该系统已将逻辑分配给输入元素和表单提交等(请不要询问详细信息 :) 重构所有那些仅仅修复 IE 故障的代码可能不值得。 给你公认的答案 - 因为我认为标准按钮元素不可能做到这一点。 渐变和过渡不能一起工作似乎是唯一的答案:***.com/questions/3790273/…【参考方案3】:

尝试使用type 属性选择器来查找按钮(也许这也能解决问题):

input[type=button]

  background-color: #E3E1B8; 


input[type=button]:hover

  background-color: #46000D

【讨论】:

这不是 CSS 选择问题 - 颜色应用正确。当鼠标处于活动状态时将鼠标移出按钮存在一些问题 - 的问题相同 嗯。我想是时候打败电脑并大喊猥亵了,因为我不知道如何欺骗 IE 来做到这一点。

以上是关于输入类型=按钮上的背景颜色:IE 中的悬停状态的主要内容,如果未能解决你的问题,请参考以下文章

如何更改单选按钮悬停颜色

仍在应用移动设备悬停状态上元素上的onClick事件

IE10 悬停伪类在没有背景颜色的情况下不起作用

wpf按钮背景悬停颜色

无法控制按钮样式和悬停样式

如何在悬停时为链接的颜色设置动画