如何将-webkit-gradient应用于IE?

Ken*_*nci 3 css internet-explorer webkit css3 css3pie

我有以下css代码:

-webkit-gradient(linear, left bottom, left top, from(#5AE), to(#036));
Run Code Online (Sandbox Code Playgroud)

这在Chrome中非常好地显示了背景.Internet Explorer只显示白色背景.我尝试使用CSS 3馅饼,它没有改变任何东西.

以下是我的css:

body {
  behavior: url(css3pie/PIE.htc);
    color: #000000;
    font-family: Arial, Helvetica, sans-serif;
    margin: 0px;
    padding: 0px;
    /*background:url("../image/bg.png") repeat scroll 0 0 transparent;*/
    background: -webkit-gradient(linear, left bottom, left top, from(#5AE), to(#036)); 
}
Run Code Online (Sandbox Code Playgroud)

谢谢

0b1*_*011 8

-webkit-gradient()仅适用于webkit浏览器(Safari,Chrome等).这意味着它不适用于Firefox,Internet Explorer,Opera或任何其他不支持的浏览器-webkit-gradient().

如果您想在所有现代浏览器中获得渐变,请尝试以下代码:

生成于http://projects.korrelboom.com/gradient-generator/:

/* SVG fallback(Opera 11.10-, IE9) */
background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iZ3JhZGllbnQiIHgxPSIwJSIgeTE9IjAlIiB4Mj0iMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdHlsZT0ic3RvcC1jb2xvcjpyZ2JhKDAsNTEsMTAyLDEpOyIgLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0eWxlPSJzdG9wLWNvbG9yOnJnYmEoODUsMTcwLDIzOCwxKTsiIC8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgZmlsbD0idXJsKCNncmFkaWVudCkiIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIC8+PC9zdmc+);

/* Opera 11.10+ */
background: -o-linear-gradient(top, rgba(0,51,102,1), rgba(85,170,238,1));

/* Firefox 3.6+ */
background: -moz-linear-gradient(top, rgba(0,51,102,1), rgba(85,170,238,1));

/* Chrome 7+ & Safari 5.03+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,51,102,1)), color-stop(1, rgba(85,170,238,1)));

/* Newer Browsers */
background: linear-gradient(top, rgba(0,51,102,1), rgba(85,170,238,1));

/* IE5.5 - IE7 */
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#FF003366,EndColorStr=#FF55AAEE);

/* IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#FF003366,EndColorStr=#FF55AAEE)"
Run Code Online (Sandbox Code Playgroud)

注意:您不需要任何外部JavaScript库来获取IE中的渐变.只需使用上面的CSS ;)但是,为了您自己的理智,我建议使用LESS或SASS等预处理器,这样您就可以自动生成所有特定于浏览器的版本.


Jon*_*Jon 7

CSS3 PIE 文档中有线性渐变的示例:

#myElement {
    background: #CCC; /*fallback for non-CSS3 browsers*/
    background: -webkit-gradient(linear, 0 0, 0 100%, from(#CCC) to(#EEE)); /*old webkit*/
    background: -webkit-linear-gradient(#CCC, #EEE); /*new webkit*/
    background: -moz-linear-gradient(#CCC, #EEE); /*gecko*/
    background: -ms-linear-gradient(#CCC, #EEE); /*IE10*/
    background: -o-linear-gradient(#CCC, #EEE); /*opera 11.10+*/
    background: linear-gradient(#CCC, #EEE); /*future CSS3 browsers*/
    -pie-background: linear-gradient(#CCC, #EEE); /*PIE*/
    behavior: url(PIE.htc);
}
Run Code Online (Sandbox Code Playgroud)

你错过了这个-pie-background属性.

顺便说一句,你应该使用"new webkit"语法而不是你现有的语法; 自Webkit放弃它以来已经有一段时间了.