Должны ли вы использовать rgba(0, 0, 0, 0)
или rgba(255, 255, 255, 0)
для прозрачности в CSS?
Каковы плюсы и минусы каждого?
Должны ли вы использовать rgba(0, 0, 0, 0)
или rgba(255, 255, 255, 0)
для прозрачности в CSS?
Каковы плюсы и минусы каждого?
Последний параметр функции rgba()
- это параметр "альфа" или "непрозрачность". Если вы установите его на 0
, это будет означать "полностью прозрачный", и первые три параметра (каналы red
, green
и blue
) не будут иметь значения, потому что вы не сможете увидеть цвет в любом случае.
Учитывая это, я бы выбрал rgba(0, 0, 0, 0)
, потому что:
Вы могли бы вообще избегать модели rgba
и использовать вместо этого ключевое слово transparent
, которое согласно w3.org эквивалентно "прозрачный черный" и должен вычисляться до rgba(0, 0, 0, 0)
. Например:
h1 {
background-color: transparent;
}
Это спасет вас еще пару байт, в то время как ваши намерения использовать прозрачность очевидны (в случае, если кто-то не знаком с RGBA).
Как и в CSS3, вы можете использовать ключевое слово transparent
для любого свойства CSS, которое принимает цвет.
Существует два способа сохранения цвета с альфой. Первое точно так же, как вы видите, с каждым компонентом как есть. Второй - использовать предварительно умноженную альфу, где значения цвета умножаются на альфу после преобразования ее в диапазон 0.0-1.0; это делается для облегчения compositing. Обычно вы не должны замечать или заботиться о том, какой путь реализуется каким-либо конкретным движком, но есть угловые случаи, где вы могли бы, например, если бы вы попытались увеличить непрозрачность цвета. Если вы используете rgba(0, 0, 0, 0)
, у вас меньше шансов увидеть разницу между этими двумя подходами.
Там небольшая разница, когда u использует rgba (255,255,255, a), цвет фона становится все более светлым, так как значение a увеличивается от 0.0 до 1.0, Где, как и при использовании rgba (0,0,0, a), цвет фона становится все более темным, так как значение a увеличивается с 0.0 до 1.0. Сказав это, ясно, что оба (255,255,255,0) и (0,0,0,0) составляют фон прозрачный. (255,255,255,1) сделает фон полностью белым, где (0,0,0,1) сделает фон полностью черным.