Да, это возможно! Хотя это не работает так же хорошо, как реальный диагональный градиент в других браузерах.
Есть два важных аспекта этого решения, которые заставляют его работать:
- Два делителя с одинаковым положением и разными значениями
z-index
(один поверх / перед другим) и разными направлениями градиента (один горизонтальный, один вертикальный)
- Прозрачные / полупрозрачные цвета в градиентах (об этом вы можете прочитать в 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');
}
Обновление
Документация для этого фильтра говорит, что несколько фильтров могут применяться вместе. Однако, как выясняется, применение более одного градиентного фильтра приводит к тому, что применяется только последний, поэтому простое применение обоих фильтров к одному слою не работает, и два слоя необходимы.