Лучшим кросс-браузерным решением в отношении IE 9+, которое соответствует стандартам W3C (не приводит к ошибке в CSS validator ), является следующее:
background-color: #fff; /* Browsers without linear-gradient support */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #000)); /* Chrome, Safari 4+ */
background-image: -webkit-linear-gradient(#fff 0%, #000 100%); /* Chrome 10+, Safari 5.1+ */
background-image: -moz-linear-gradient(#fff 0%, #000 100%); /* Fx 3.6+ */
background-image: linear-gradient(#fff 0%, #000 100%); /* W3C */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(gradientType=0, startColorstr='#ffffff', endColorstr='#000000')";
.gradient--test {
background-color: #fff; /* Browsers without linear-gradient support */
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #000)); /* Chrome, Safari 4+ */
background-image: -webkit-linear-gradient(#fff 0%, #000 100%); /* Chrome 10+, Safari 5.1+ */
background-image: -moz-linear-gradient(#fff 0%, #000 100%); /* Fx 3.6+ */
background-image: linear-gradient(#fff 0%, #000 100%); /* W3C */
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(gradientType=0, startColorstr='#ffffff', endColorstr='#000000')";
}
.gradient--test {
width: 61.8%;
height: 200px;
}
<div class=gradient--test></div>
В IE 9 введена нотация префикса поставщика -ms-filter
, то есть в соответствии со стандартами, в то же время, устарела проприетарные фильтры.
Не требуется ни префикс -o-
вендора, ни -ms-
(поскольку IE 10 является первым IE, поддерживающим градиенты и поддерживает синтаксис стандартов W3C) .См. http://caniuse.com/#feat=css-gradients
Предпочитайте значения шестнадцатеричного цвета в нижнем регистре для лучшего сжатия и четко указывайте background-color
и background-image
вместо background
, поскольку это может привести к ошибкам рендеринга в браузерах без поддержки линейного градиента.Сильно скопировано из моего ответа на этот вопрос .