Почему этот градиент CSS отображается с неправильными цветами в IE 7? - PullRequest
13 голосов
/ 19 января 2011

Итак, я пытаюсь поместить градиентный фон в таблицу с помощью класса:

.prov-results-bkgrd {
    background: #fff url(/_images/prov-results-table-bg.jpg) left bottom repeat-x;

    background: -webkit-gradient(
        linear,
        left top,
        left bottom,
        from(#fff),
        to(#dedbd5)
    );

    background: -moz-linear-gradient(top, #fff, #dedbd5);

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff', endColorstr='#dedbd5');
}

IE8 и FireFox выглядят нормально.Они применяют градиенты, как я думал: от белого к светло-бежевому.

Однако IE7 применяет градиент от черный к темно-синему ???WTF с этим ...?

Откуда это?Разве IE7 не распознает шестнадцатеричные цвета?

И если бы он этого не сделал, он не применил бы фон по умолчанию, то есть #fff и файл изображения ??

Ответы [ 2 ]

16 голосов
/ 19 января 2011

Вы пробовали с #ffffffff вместо #fff и # ffdedbd5 вместо # dedbd5 для фильтра градиента (т.е. 7)?

Вы должны указать альфа-значение, я думаю http://msdn.microsoft.com/en-us/library/ms532929(v=vs.85).aspx

10 голосов
/ 19 января 2011

IE распознает шестнадцатеричные цвета, но не тот, который вы используете.Работать будут только те, которые имеют 6 шестнадцатеричных (#RRGGBB) или 8 шестнадцатеричных (#AARRGGBB; работает только в градиентном фильтре!).Он также будет принимать именованные цвета.

Так что он будет работать, если вы замените #fff на white или #ffffff (или #ffffffff, но это больше, чем необходимо в этом случае).

Страницы MSDN для startColorStr и endColorStr также отмечают, что начальный цвет по умолчанию - синий, а конечный цвет по умолчанию - черный, и:

Строковый вход вне шестнадцатеричного диапазона вернется к значению по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...