Что CSS грядущий нам готовит? Часть пятая: rgba и hsla
Что CSS грядущий нам готовит? Часть первая: border-radius
Что CSS грядущий нам готовит? Часть вторая: box-shadow
Что CSS грядущий нам готовит? Часть третья: gradient
Что CSS грядущий нам готовит? Часть четвёртая: text-shadow
Что CSS грядущий нам готовит? Часть пятая: rgba и hsla
Сегодня мы рассмотрим сразу два свойства - rgba и hsla. Данные свойства – производные от rgb и hsl (hsl, к слову, до сих пор не поддерживается в IE), и единственное отличие в них – это четвёртый параметр, отвечающий за прозрачность.Что CSS грядущий нам готовит? Часть вторая: box-shadow
Что CSS грядущий нам готовит? Часть третья: gradient
Что CSS грядущий нам готовит? Часть четвёртая: text-shadow
Что CSS грядущий нам готовит? Часть пятая: rgba и hsla
Возможно, вы спросите: зачем использовать эти свойства, если есть opacity, которое худо-бедно поддерживается большинством браузеров?
Вот два блока.
Добавляем текст:
Этот блок не справился с прозрачностью текста...
В отличие от этого блока!
И видим, что в первом блоке текст также стал полупрозрачным.
Для решения этой проблемы есть три варианта:
1. Использование полупрозрачного PNG вместо фона.
В этом примере используется полупрозрачный PNG.
Минусы: В IE 6 требует допиливания с помощью AlphaImageLoader.
2. Подложка прозрачного блока под основной блок.
В этом примере используется подложка со свойством opacity.
Плюсы: Без дополнительных изображений, возможность использовать плагин jQuery.
Минусы: Без JS размер подложки будет не зависящим от размеров основного блока.
3. Свойство rgba.
В этом примере используется свойство rgba.
Минусы: Не поддерживается в IE.
Сегодня мы рассмотрим последний вариант.
В данном свойстве сначала перечисляются цвета (красный, зелёный и синий, что следует из названия), а затем идёт параметр alpha, который и будет определять прозрачность (от 0 до 1).
rgba(250, 99, 163, 0.6)
rgba(100, 179, 249, 0.4)
rgba(0, 0, 0, 0.2)
При необходимости можно использовать hsla, где используются тон (от 0 до 360), насыщенность (от 0% до 100%) и светлота (от 0% до 100%).
hsla(0, 80%, 50%, 0.6)
hsla(120, 80%, 50%, 0.4)
hsla(240, 80%, 50%, 0.2)
Конечно, rgba и hsla можно использовать не только для фона, но и для текста, границ и всего, к чему можно применить атрибут color.
Итог
Если бы не IE, то rgba и hsla можно было использовать уже сейчас для решения многих повседневных задач.Хотя при желании для IE можно воспользоваться первым или вторым способом, скорее всего усилия не стоят ожидаемого результата.
Лично я так и буду использовать первый способ. По крайней мере, до тех пор, пока IE (до 8 версии включительно) не уйдет в небытие :)



По поводу IE, его тоже можно приручить через filter:progid:DXImageTransform.Microsoft.gradient
Подробнее у меня в статье про «CSS RGBa или как бы еще задать прозрачность фона элемента» www.aimweb.ru/css/css-rgba-opacity/
Про filter:gradient я уже писала (recens.ru/css/css3_gradient.html), но о таком способе применения не думала.
Можно мне добавить это решение в статью? (Разумеется, со ссылкой на вас.)