Как сделать фоновое изображение с использованием линейного градиента в IE 11?

Любая идея, как я могу сделать background-image с linear-gradient для работы с IE 11?

Следующий код отлично работает в IE 10, но не работает на IE 11.

background-image: url(IMAGE), -ms-linear-gradient(top, #ffffff, #BEE38F);

Я могу сделать linear-gradient для работы с IE 6-9, 11, используя следующий filter, но фоновое изображение в этом случае не отображается.

filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#BEE38F',GradientType=0 )

Я открыт для идей.

Обновление: Здесь код, который у меня есть.

background-image: url(IMAGE), -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#BEE38F));
background-image: url(IMAGE), -webkit-linear-gradient(top, #ffffff, #BEE38F);
background-image: url(IMAGE), -moz-linear-gradient(top, #ffffff, #BEE38F);
background-image: url(IMAGE), -ms-linear-gradient(top, #ffffff, #BEE38F);
background-image: url(IMAGE), -o-linear-gradient(top, #ffffff, #BEE38F);
background-image: url(IMAGE), linear-gradient(to bottom, #ffffff, #BEE38F);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#BEE38F',GradientType=0 );

Ответы

Ответ 1

linear-gradient() поддерживается без изменений в RTM от IE10 и позже, включая IE11. Вам никогда не нужен префикс -ms-, если только по какой-то непонятной причине вам нужно настроить таргетинг на версии до версии IE10.

Обратите внимание, что синтаксис направленности для linear-gradient() отличается; то, что изначально было top, теперь представлено как to bottom вместо этого (см. это сообщение в блоге, этот вопрос и спецификация):

background-image: url(IMAGE), linear-gradient(to bottom, #ffffff, #BEE38F);

Ответ 2

Беспокойство, не так ли?

До IE 11,

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#cccccc');

Для IE 11:

background-image: -ms-linear-gradient(top, #FFFFFF 0%, #CCCCCC 100%);

Этим людям, мы должны не только беспокоиться о поддержке старых IE, но, видимо, теперь нам придется иметь дело с общими чертами NEWER IE...

Ответ 3

Это все великолепные решения , если вы накладываете линейный градиент непосредственно на текст. Но если вы хотите отобразить его на верхней части изображения, он не работает в IE. Не спрашивайте меня, почему, но это не так.

Я собрал много ресурсов и, наконец, наткнулся на это diddy

@media (-ms-high-contrast: none), (-ms-high-contrast: active) {
 .yourTargetClass:before {
    content: "";
    position: absolute;
    height: 100%;
    width: 100%;
    background-image: linear-gradient(-221deg, rgba(205,234,255,0.41), rgba(227,253,255,0.82)); /* THIS IS WHAT EVER OVERLAY COLOUR YOU WANT */ }
    opacity:0.55;
  }
}

Я обернул это в селектор IE для 10+. Вам нужно включить непрозрачность, так как это поможет смешать наложение градиента с содержимым.

Надеюсь, это поможет кому-то!

Ответ 4

Я столкнулся с той же проблемой и, помимо выполнения фильтра и линейного градиента, мне также пришлось добавить ширину в мой класс CSS, как только я установил ширину, я мог видеть свой обычай стили с градиентом фона.