Градиенты CSS работают в IE9? - PullRequest
       16

Градиенты CSS работают в IE9?

6 голосов
/ 17 февраля 2011

К сожалению, у меня еще нет машины, на которой я могу протестировать IE9 (все еще в XP), а браузерные снимки еще не делают IE9.Может кто-нибудь сказать мне, если IE9 поддерживает CSS градиенты?Вот страница, к которой применены градиенты.Это работает?

http://www.webdesignerwall.com/demo/css3-dropdown-menu/css-gradient-dropdown.html

Ответы [ 4 ]

6 голосов
/ 17 февраля 2011

Это не так.

Смотрите здесь: http://caniuse.com/#search=gradient

Он будет поддерживать SVG в качестве фона, который в настоящее время используется для создания градиентов для Opera.

3 голосов
/ 15 марта 2011

В IE9 в настоящее время отсутствует поддержка градиента CSS3. Тем не менее, вот хорошее обходное решение, использующее PHP для возврата SVG (вертикального линейного) градиента вместо этого, что позволяет нам сохранять наш дизайн в наших таблицах стилей.

<?

header('Content-type: image/svg+xml; charset=utf-8');
echo '<?xml version="1.0"?>
';

$from_stop = isset($_GET['from']) ? $_GET['from'] : '000000';
$to_stop = isset($_GET['to']) ? $_GET['to'] : '000000';

?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" preserveAspectRatio="none" width="100%" height="100%">
    <defs>
        <linearGradient id="linear-gradient" x1="0%" y1="0%" x2="0%" y2="100%" spreadMethod="pad">
            <stop offset="0%" stop-color="#<?=$from_stop?>" stop-opacity="1"/>
            <stop offset="100%" stop-color="#<?=$to_stop?>" stop-opacity="1"/>
        </linearGradient>
    </defs>
    <rect width="100%" height="100%" style="fill: url(#linear-gradient);"/>
</svg>

Просто загрузите его на свой сервер и назовите URL следующим образом:

gradient.php?from=f00&to=00f

Это можно использовать вместе с вашими CSS3-градиентами, например так:

.my-color {
    background-color: #f00;
    background-image: url(gradient.php?from=f00&to=00f);
    background-image: -webkit-gradient(linear, left top, left bottom, from(#f00), to(#00f));
    background-image: -webkit-linear-gradient(top, #f00, #00f);
    background-image: -moz-linear-gradient(top, #f00, #00f);
    background-image: linear-gradient(top, #f00, #00f);
}

Если вам нужно настроить таргетинг ниже IE9, вы все равно можете использовать старый проприетарный метод 'filter':

.ie7 .my-color, .ie8 .my-color {
    filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr="#ff0000", endColorStr="#0000ff");
}

Конечно, вы можете изменить код PHP, чтобы добавить больше градиентов или сделать его более сложным (радиальные градиенты, прозрачность и т. Д.), Но это отлично подходит для этих простых (вертикальных) линейных градиентов.

1 голос
/ 17 февраля 2011

IE9 не поддерживает CSS-градиенты.

Посмотрите на нижнюю часть это сравнение между Firefox 4 и IE9 .

1 голос
/ 17 февраля 2011

Согласно этой статье , IE9 не поддерживает градиенты.

...