使用CSS为IE样式化提交按钮

4
对于Firefox和Chrome,input[type=button]:hover,input[type=submit]:hoverinput[type=button],input[type=submit] 可以完成工作,但是对于IE(8)怎么办?
@Herohtar: 它们可以?怎么做?我正在使用这个CSS,但它们无法工作:
    input[type=button],input[type=submit]
{
    border-right-color: black;
    border-right-style: solid;
    border-right-width: 1px;
    border-left-color: black;
    border-left-style: solid;
    border-left-width: 1px;
    border-bottom-color: black;
    border-bottom-style: solid;
    border-bottom-width: 1px;
    border-top-color: black;
    border-top-style: solid;
    border-top-width: 1px;
    text-align: center;
    font-weight: bold;
    height: 30px;
    font-family: Georgia,'Times New Roman',times,serif;
    color: #000000;
    border-radius: 4px;
    -moz-border-radius:4px;
    -webkit-border-radius:4px;
    background: #fceabb; /* old browsers */
    background: -moz-linear-gradient(top, #fceabb 0%, #fccd4d 50%, #f8b500 51%, #fbdf93 100%); /* firefox */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fceabb), color-stop(50%,#fccd4d), color-stop(51%,#f8b500), color-stop(100%,#fbdf93)); /* webkit */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fceabb', endColorstr='#fbdf93',GradientType=0 ); /* ie */
}

input[type=button]:hover,input[type=submit]:hover
{
    color: black;   
    border-radius: 6px;
    -moz-border-radius:6px;
    -webkit-border-radius:6px;
    -khtml-border-radius:6px;
    background: #ffb76b; /* old browsers */
    background: -moz-linear-gradient(top, #ffb76b 0%, #ffa73d 50%, #ff7c00 51%, #ff7f04 100%); /* firefox */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffb76b), color-stop(50%,#ffa73d), color-stop(51%,#ff7c00), color-stop(100%,#ff7f04)); /* webkit */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffb76b', endColorstr='#ff7f04',GradientType=0 ); /* ie */
}
2个回答

7

input[type=submit]input[type=button]在IE8中都可以使用,并且与:hover条件一起使用。

编辑:您列出的CSS在我的IE8中完美运行:http://jsfiddle.net/dnZNE/,也许您的其他CSS正在覆盖它?


好的,我在输入[type="button"]:disabled,input[type="submit"]:disabled,input[type="text"]:disabled,select[disabled]之后。 - guest86
我喜欢你在这里提供的网站,但现在我完全困惑了!当我将我的HTML和CSS粘贴到那里时,页面显示的方式正是它应该呈现的样子! - guest86
真的很奇怪...那个页面上的CSS在IE8中确实不起作用。乍一看,一切似乎都没问题。我尝试了几种方法,但无法使其正常工作...我不明白是什么原因导致它出现这样的问题。 - Herohtar
我只是没有运气 :\ - guest86
刚遇到了这个问题,因为我使用 filter 在悬停时设置渐变背景,所以必须在另一个 :hover 子类中明确设置 filter: none - Matt Stein
显示剩余4条评论

1
如果可能的话,请使用jQuery(www.jquery.com): $(':submit')。css('属性','值');
如果不行,恐怕您必须为这些按钮添加类。

添加一个类?我觉得实现“hover”可能会很复杂,对吧?请告诉我我的感觉是错误的,我不需要使用JavaScript来实现“hover”! :) - guest86
问题可能出在[type=submit]部分,而不是“hover”上。我没有IE8来测试它,但我记得在IE7中这是个问题。一个解决方案是使用jQuery来修复IE的怪癖,另一个解决方案是编写一个类名。但是 - IE8可能会与两个选择器都正常工作。 - Chris Hasiński
这可能会成为唯一的解决方案,除非你能弄清楚为什么CSS可以通过jsfiddle工作并实现它...使用jQuery实现悬停效果实际上并不太困难。 - Herohtar
我从未使用过jQuery,对它一无所知(尽管我对JavaScript还算熟悉)。 - guest86
试试吧。它很不显眼(当正确使用时),干净而且非常快速。他们的网站(jquery.com)上有很多好的例子。 - Chris Hasiński

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接