IE中的对角渐变

| 有没有办法在IE中有对角线渐变?在Chrome浏览器中,我可以执行以下操作:
body{
    background-image:-webkit-gradient(
    linear,
    left top,
    right bottom,
    color-stop(0%,#f00),
    color-stop(50%,#0f0),
    color-stop(100%,#00f));
}
但这在IE中不起作用。     
已邀请:
对的,这是可能的!尽管它不如其他浏览器中的对角线渐变效果好。 该解决方案的两个重要方面使其能够起作用: 具有相同位置和不同
z-index
值的两个div(一个在另一个的顶部/前面)和不同的渐变方向(一个水平,一个垂直) 渐变中的透明/半透明颜色(您可以在CSS3 Transparency + Gradient中阅读有关此内容的信息) 只需将具有垂直渐变的div放在具有水平渐变的div后面(反之亦然,这并不重要),并确保最上面的渐变的颜色不透明。 结果如下所示(Internet Explorer 8):   和CSS:
//left sample
.back
{
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=\"0\", startColorstr=\'#880088\', endColorstr=\'#110011\');
    z-index:0;
}

.front
{
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=\"1\", startColorstr=\'#55ffa885\', endColorstr=\'#55330000\');
    z-index:1;
}

//right sample
.diaggradientback
{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:100%;
    overflow:hidden;
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=\'1\', startColorstr=\'#ffa885\', endColorstr=\'#330000\');
}

.diaggradientfront
{
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:100%;
    overflow:hidden;
    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=\'0\', startColorstr=\'#bbffa885\', endColorstr=\'#bb330000\');
}
更新: 该过滤器上的文档确实说可以将多个过滤器一起应用。但是,事实证明,应用多个渐变滤镜只会导致最后一个渐变滤镜的应用,因此仅将两个滤镜应用到一层是行不通的,并且需要两层。     
简短的答案是,不幸的是,不可以。 Microsoft的渐变过滤器是二进制的-仅从左到右或从上到下。 但是,您可能可以使用CSS3 PIE做您想要的事情。请记住,即使IE7和8都可以使用,PIE对IE9中的渐变的支持还是有些粗略的,并且可能会或可能不会(请参阅其论坛以获取更多信息)。     
我发现了这些有趣的文章,也许如果您阅读它们并对其感到困惑,您可能会成功:) http://www.useragentman.com/blog/csssandpaper-a-css3-javascript-library/ http://www.useragentman.com/blog/2010/03/09/cross-browser-css-transforms-even-in-ie/ http://weston.ruter.net/projects/css-gradients-via-canvas/     

要回复问题请先登录注册