在所有浏览器中使用渐变的HTML按钮设计?

时间:2013-07-29 07:32:58

标签: jquery html css css3

我有HTML按钮样式。它在Fire fox中运行良好,但在IE中它无法正常渲染。我正在使用IE7。但它应该适用于7以上的所有IE版本。

在FF中:

enter image description here

但在IE中,它的外观却不同:

enter image description here

以下是我的CSS风格:

button.skip {
    -moz-border-bottom-colors: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    background-color: #8C9CBF;
    background-image: -moz-linear-gradient(center top , #8C9CBF 0%, #546A9E 50%, #36518F 50%, #3D5691 100%);
    border-color: #172D6E #172D6E #0E1D45;
    border-image: none;
    border-radius: 5px 5px 5px 5px;
    border-style: solid;
    border-width: 1px;
    box-shadow: 0 1px 0 0 #B1B9CB inset;
    color: #FFFFFF;
    font: bold 16px/1 "helvetica neue",helvetica,arial,sans-serif;
    padding: 7px 0 8px;
    text-align: center;
    text-decoration: none;
    text-shadow: 0 -1px 1px #000F4D;
    width: 150px;

}

如何在IE中显示类似于FF的按钮?谢谢!

6 个答案:

答案 0 :(得分:1)

试试这个:

-webkit-border-radius: 5px;
border-radius: 5px;

background: #8c9cbf; /* Old browsers */
background: -moz-linear-gradient(top,  #8c9cbf 0%, #546a9e 50%, #36518f 50%, #3d5691 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8c9cbf), color-stop(50%,#546a9e), color-stop(50%,#36518f), color-stop(100%,#3d5691)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #8c9cbf 0%,#546a9e 50%,#36518f 50%,#3d5691 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #8c9cbf 0%,#546a9e 50%,#36518f 50%,#3d5691 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #8c9cbf 0%,#546a9e 50%,#36518f 50%,#3d5691 100%); /* IE10+ */
background: linear-gradient(to bottom,  #8c9cbf 0%,#546a9e 50%,#36518f 50%,#3d5691 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8c9cbf', endColorstr='#3d5691',GradientType=0 ); /* IE6-9 */

答案 1 :(得分:1)

这是您必须添加的按钮才能在IE中使用的

  background: -ms-linear-gradient(top, #dcdedb 0%, #c9cbc8 100%);
        /* IE10+ */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dcdedb', endColorstr='#c9cbc8', GradientType=0);
        /* IE6-9 */

WORKING DEMO

编辑:NEW DEMO

对于IE9及以下版本,您将无法使用CSS3渐变,因为 IE9,IE8,IE7不支持CSS3渐变。另一种方法是创建 PNG 按钮,并将按钮的背景图像分配给 PNG

另一种方法是使用 SVG 。但是我不建议这样做,因为仅仅为了 IE7 创建一个花式按钮而使用 SVG 是没有意义的。

答案 2 :(得分:1)

ie7不支持css3梯度属性你应该使用pie.htc for ie8,ie7

这是其页面的链接

http://css3pie.com/

答案 3 :(得分:0)

您可以尝试IE特定的CSS

background: -ms-linear-gradient(top, #8C9CBF 0%, #546A9E 50%, #36518F 50%, #3D5691 100%); // IE 10
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#546A9E', endColorstr='#3D5691',GradientType=0 ); // IE 6-9

根据您的需要修改值。

答案 4 :(得分:0)

您可以使用

Colorzilla Gradient Generator:http://colorzilla.com/gradient-editor/

和CSS3Pie:http://css3pie.com

试试这个:

background: #8c9cbf; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzhjOWNiZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzU0NmE5ZSIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjUxJSIgc3RvcC1jb2xvcj0iIzM2NTE4ZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMzZDU2OTEiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top,  #8c9cbf 0%, #546a9e 50%, #36518f 51%, #3d5691 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#8c9cbf), color-stop(50%,#546a9e), color-stop(51%,#36518f), color-stop(100%,#3d5691)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #8c9cbf 0%,#546a9e 50%,#36518f 51%,#3d5691 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #8c9cbf 0%,#546a9e 50%,#36518f 51%,#3d5691 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #8c9cbf 0%,#546a9e 50%,#36518f 51%,#3d5691 100%); /* IE10+ */
background: linear-gradient(to bottom,  #8c9cbf 0%,#546a9e 50%,#36518f 51%,#3d5691 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#8c9cbf', endColorstr='#3d5691',GradientType=0 ); /* IE6-8 */

以及IE9中的支持:

<!--[if gte IE 9]>
  <style type="text/css">
    .gradient {
       filter: none;
    }
  </style>
<![endif]-->

答案 5 :(得分:0)