CSS3 Прозрачность + Градиент

283

RGBA чрезвычайно забавна, и поэтому -webkit-gradient, -moz-gradient и uh... progid:DXImageTransform.Microsoft.gradient... да.:)

Есть ли способ объединить два, RGBA и градиенты, так что есть градиент альфа-прозрачности с использованием текущих/последних спецификаций CSS.

  • 1
    Комментарий @ geo1701 должен стать принятым, так как он более соответствует современным стандартам.
Теги:

7 ответов

320
Лучший ответ

Да. Вы можете использовать rgba как в объявлениях webkit, так и в moz-градиенте:

/* webkit example */
background-image: -webkit-gradient(
  linear, left top, left bottom, from(rgba(50,50,50,0.8)),
  to(rgba(80,80,80,0.2)), color-stop(.5,#333333)
);

(src)

/* mozilla example - FF3.6+ */
background-image: -moz-linear-gradient(
  rgba(255, 255, 255, 0.7) 0%, rgba(255, 255, 255, 0) 95%
);

(src)

По-видимому, вы даже можете сделать это в IE, используя нечетный синтаксис "расширенный шестнадцатеричный". Первая пара (в примере 55) относится к уровню непрозрачности:

/* approximately a 33% opacity on blue */
filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

/* IE8 uses -ms-filter for whatever reason... */
-ms-filter: progid:DXImageTransform.Microsoft.gradient(
  startColorstr=#550000FF, endColorstr=#550000FF
);

(src)

  • 19
    К вашему сведению, «расширенный шестнадцатеричный код» - это просто 32-битный ARGB вместо 24-битных значений цвета RGB.
  • 2
    я бы хотел, чтобы они работали и в стандартном css, но с альфа в конце (кажется более естественным): #0001 будет коротким шестнадцатеричным для «почти прозрачного черного», а #ffcc00ff будет таким же, как #ffcc00 , т.е. «Полностью непрозрачный желтый мандарин»
Показать ещё 8 комментариев
82

Новый синтаксис поддерживается некоторое время всеми современными браузерами (начиная с Chrome 26, Opera 12.1, IE 10 и Firefox 16): http://caniuse.com/#feat=css-gradients

background: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));

Это делает градиент, начиная с сплошного черного в верхней части, до полностью прозрачного внизу.

Документация по MDN.

  • 7
    .. создает сплошной черный вверху, чтобы полностью прозрачный внизу
  • 0
    Я предполагаю, что это предложение и на самом деле не работает?
Показать ещё 1 комментарий
14

Это действительно здорово! Мне нужно было почти то же самое, но с горизонтальным градиентом от белого до прозрачного. И он работает отлично! Вот мой код:

.gradient{
        /* webkit example */
        background-image: -webkit-gradient(
          linear, right top, left top, from(rgba(255, 255, 255, 1.0)),
          to(rgba(255, 255, 255, 0))
        );

        /* mozilla example - FF3.6+ */
        background-image: -moz-linear-gradient(
          right center,
          rgba(255, 255, 255, 1.0) 20%, rgba(255, 255, 255, 0) 95%
        );

        /* IE 5.5 - 7 */
        filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColorStr=#FFFFFF
        );

        /* IE8 uses -ms-filter for whatever reason... */
        -ms-filter: progid:DXImageTransform.Microsoft.gradient(
          gradientType=1, startColor=0, endColoStr=#FFFFFF
        );
    }
  • 1
    для справки, в реализации Microsoft, GradientType = 1 является горизонтальным, 0 является вертикальным.
  • 0
    Градиенты IE7 и IE8 не определяют альфа-цвет? Они действительно превращаются в прозрачные?
10

Я использую http://enjoycss.com для создания любых простых и сложных градиентов у thty есть много градиентных паттернов в галерее Изображение 5000

3

Вот мой код:

background: #e8e3e3; /* Old browsers */
  background: -moz-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%, rgba(246, 242, 242, 0.95) 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(232, 227, 227, 0.95)), color-stop(100%,rgba(246, 242, 242, 0.95))); /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(top,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* IE10+ */
  background: linear-gradient(to bottom,  rgba(232, 227, 227, 0.95) 0%,rgba(246, 242, 242, 0.95) 100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='rgba(232, 227, 227, 0.95)', endColorstr='rgba(246, 242, 242, 0.95)',GradientType=0 ); /* IE6-9 */
  • 1
    Градиен не работает на IE9
2
#grad
{
    background: -webkit-linear-gradient(left,rgba(255,0,0,0),rgba(255,0,0,1)); /*Safari 5.1-6*/
    background: -o-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Opera 11.1-12*/
    background: -moz-linear-gradient(right,rgba(255,0,0,0),rgba(255,0,0,1)); /*Fx 3.6-15*/
    background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /*Standard*/
}

Я нашел это в w3schools и соответствовал моим потребностям, пока искал градиент и прозрачность. Я предоставляю ссылку для ссылки на w3schools. Надеюсь, это поможет, если кто-то ищет градиент и прозрачность.

http://www.w3schools.com/css/css3_gradients.asp

Также я попробовал это в w3schools, чтобы изменить непрозрачность, вставив ссылку для нее.

http://www.w3schools.com/css/tryit.asp?filename=trycss3_gradient-linear_trans

Надеюсь, что это поможет.

0

Я только что наткнулся на этот более свежий пример. Чтобы упростить и использовать последние примеры, давая css класс селектора "grad" (я включил обратную совместимость)

.grad {
    background-color: #F07575; /* fallback color if gradients are not supported */
    background-image: -webkit-linear-gradient(top left, red, rgba(255,0,0,0));/* For Chrome 25 and Safari 6, iOS 6.1, Android 4.3 */
    background-image: -moz-linear-gradient(top left, red, rgba(255,0,0,0));/* For Firefox (3.6 to 15) */
    background-image: -o-linear-gradient(top left, red, rgba(255,0,0,0));/* For old Opera (11.1 to 12.0) */
    background-image: linear-gradient(to bottom right, red, rgba(255,0,0,0)); /* Standard syntax; must be last */
}

от https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient

Ещё вопросы

Сообщество Overcoder
Наверх
Меню