Полупрозрачный цвет css: Полупрозрачный фон / Хабр

Содержание

Цветовая модель HSL в CSS 3.


Дизайнер: — Цвет фона на плакате каким будет?
Клиент: — А какие цвета у вас есть?
Дизайнер: — Три: красный, зелёный и синий остальные — оттенки
Клиент: — Странно, в прошлый раз мне оранжевым напечатали..


Глава 4

Ранее в ходе обучения HTML и CSS 2.1 мы с Вами уяснили что цвет того или иного элемента сайта может быть определён следующими способами:

  • Именным значением, например: red — красный.
  • Значением цвета RGB, например: RGB(255,0,0) — опять таки красный.
  • Шестнадцатеричным значением цвета RGB, например: #ff0000 — всё тот же красный.

Об этих методах определения цвета я писал в главе «Цвет и фон» учебника CSS поэтому повторятся не стану а расскажу о ещё одном способе определения цвета, который предлагает спецификация CSS 3.

В CSS 3 вошёл ещё один способ определения цвета с помощью

HSL (от англ. Hue, Saturation, Lightness). — это модель, в которой цвет определяется тремя параметрами: Оттенком (тоном), насыщенностью и светлотой. Давайте рассмотрим каждый параметр отдельно:

Оттенок.

Для того чтобы определить тон (Hue) нужно указать градус поворота (от 0° до 360°) цветового спектра замкнутого в цветовой круг — во сказанул!! )) В общем, смотрите на рисунок там наглядно показано откуда берётся этот угол.. Имеется, значит, радуга замкнутая в круг в котором красный всегда ориентирован на север и равен 0 градусам (ну и 360° тоже), 120 градусов это зелёный, 240° синий — это основные три цвета которые, смешиваясь, образуют ещё три дополнительных 60° жёлтый 180° голубой и 300° фиолетовый.. Ну а между этими шестью основными и дополнительными цветами расположены все остальные оттенки цветового спектра.

Насыщенность.

Второе значение (Saturation) цветовой модели HSL определяет насыщенность выбранного нами оттенка и указывается в процентах в диапазоне от 0% до 100%. Чем ближе данное значение к 100% тем цвет выглядят более чисто и «сочно» и наоборот если насыщенность стремится к 0% то цвет «линяет» и становится серым.

Светлота.

Светлота или яркость (Lightness) это третий параметр HSL. Точно так же как и насыщенность указывается в процентах.. чем выше процент, тем ярче становится цвет. Крайние значения 0% и 100% будут обозначать соответственно чёрный (отсутствие света) и белый (засвеченный) цвета, причём неважно, какой оттенок из цветового круга был выбран изначально. Оптимальное значение яркости цвета равняется 50%.

Такая вот теория.. теперь к практике..

Как обычно покажу на примере:

<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>Цвет HSL</title>
<style type=»text/css»>
body{
background-color:hsl(120,10%,50%);
color:hsl(60,100%,50%)
}
. blok1 {background-color:hsl(0,0%,0%)}
.blok2 {background-color:hsl(0,0%,100%)}
.blok3 {background-color:hsl(187,61%,54%)}
.blok4 {background-color:hsl(300,100%,70%)}
.blok5 {background-color:hsl(0,100%,50%)}
.blok6 {background-color:hsl(240,100%,50%)}
</style>
</head>
<body>
<div>Блок 1</div>
<div>Блок 2</div>
<div>Блок 3</div>
<div>Блок 4</div>
<div>Блок 5</div>
<div>Блок 6</div>
</body>
</html>

смотреть пример  

Альфа каналы.

RGBA

На ряду со свойством opacity определяющего степень прозрачности элемента в CSS 3 появился так называемый альфа канал, который позволяет сделать цвет прозрачным непосредственно при его указании.

Так у уже знакомого нам способа определения цвета RGB (Red, Green, Blue ) появляется четвёртое значение RGBA (Red, Green, Blue, Alpha) это и есть пресловутый альфа канал который определяет степень прозрачности. Степень прозрачности, точно так же как и для свойства opacity определяется значением от 0 до 1 где 0 полностью прозрачный а 1 непрозрачный вовсе.

Пример:

<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>Цвет RGBA</title>
<style type=»text/css»>
body{
background-image: url(graphics/fon.gif)
}
.blok1{background-color:rgba(255,0,0,0.1)}
.blok2{background-color:rgba(255,0,0,0.5)}
. blok3{background-color:rgba(255,0,0,1)}
</style>
</head>
<body>
<div>Блок 1</div>
<div>Блок 2</div>
<div>Блок 3</div>
</body>
</html>

смотреть пример  

HSLA

Цветовая модель HSLA это тоже самое, что и HSL только с добавлением альфа канала. Альфа канал в HSLA аналогичен с только что разобранным альфа каналом в RGBA, поэтому повторятся, не буду просто покажу пример:

<!DOCTYPE html>
<html>
<head>
<meta charset=»utf-8″>
<title>Цвет HSLA</title>
<style type=»text/css»>
body{
background-image: url(graphics/fon.gif)
}
.
blok1{background-color:hsla(120,100%,50%,0.1)}

.blok2{background-color:hsla(120,100%,50%,0.5)}
.blok3{background-color:hsla(120,100%,50%,1)}
</style>
</head>
<body>
<div>Блок 1</div>
<div>Блок 2</div>
<div>Блок 3</div>
</body>
</html>

смотреть пример  

  • Считается, что преимуществом цветовой схемы HSL перед RGB являются более природные естественные цвета так как формат RGB был создан специально для электроннолучевых трубок.. ну не знаю.. во первых лично у меня не столь придирчивый глаз, а во вторых какая разница ведь всё равно в итоге цвет на странице будет показан с помощью электроннолучевой трубки — ну или её аналога!? то есть в определённом сочетании красного, зелёного и синего цвета т.

    е. по сути цвет HSL будет в итоге переконвертирован в RGB.

  • А вот что мне нравится в HSL так это то, что цвет заданный таким способом интуитивно понятен, то есть, взглянув на цифры, допустим hsl(60,100%,50%) можно сразу же представить каким приблизительно в итоге будет цвет достаточно просто держать в голове цветовой круг (радугу) и знать теорию, о которой мы говорили выше. А вот с RGB цветом ничего, как правило, непонятно до тех пор, пока в фотошопе или ещё где-нибудь не посмотришь на цифры сочетания красного, зелёного и синего.

  • Форматы HSL, HSLA и RGBA

    воспринимают версии браузеров начиная с: IE 9.0, Opera 10.0 Firefox 3.0 … А как быть со старыми версиями браузеров решать уже Вам. Однако хочу отметить, что одному и тому же элементу цвет можно задать несколькими способами.

    Ну например:

    . blok {
    background-color:rgb(255,0,0)
    background-color:rgba(255,0,0,0.5)
    }

    При таком раскладе цвет в старых браузерах хоть и не будет полупрозрачным , но зато будет правильным.. конкретно в этом случае красным.


[CSS] — Как установить прозрачность с помощью линейного градиента в CSS

Узнайте, как использовать линейный градиент и rgba для настройки прозрачности элемента в CSS.

👩‍💻 Технический вопрос

Спросил 4 месяца назад в CSS by Mariana

 

как установить прозрачность фона с линейным градиентом

HTML линейный градиент RGBA прозрачность элемент

Дополнительные вопросы по кодированию о CSS

👩‍💻 Инструкции по коду HTML, CSS и JavaScript

Спросил 9 часов назад в CSS by Anamarija

 

Переместите смайлики друг на друга, используя относительное позиционирование

CSS позиционирование родственник лучшее свойство смайлики

👩‍💻 Технический вопрос

Спросил 12 дней назад в CSS от Ники

 

заполнение кнопок

CSS кнопка набивка веб-разработка

👩‍💻 Технический вопрос

Спросил 12 дней назад в CSS by Niki

 

как сделать размытую тень вокруг изображения

CSS коробка-тень изображение эффект размытия эффект распространения

👩‍💻 Технический вопрос

Спросил 12 дней назад в CSS от Ники

 

как изменить цвет фона?

цвет фона CSS веб-дизайн дизайн веб-страницы значения цвета

👩‍💻 Технический вопрос

Спросил 12 дней назад в CSS Сара

 

Когда следует использовать переменные css?

УС переменные многоразовый Глобальный обновление

👩‍💻 Технический вопрос

Спросил 12 дней назад в CSS Саба

 

как изменить непрозрачность фона?

УС фон непрозрачность

👩‍💻 Технический вопрос

Спросил 13 дней назад в CSS от Ciara

 

какие продвинутые селекторы CSS

продвинутые селекторы CSS селектор братьев и сестер селектор атрибутов n-й дочерний селектор

👩‍💻 Технический вопрос

Спросил 13 дней назад в CSS от Лунгело

 

тип направления гибкости в css

CSS флексбокс flex-направление ряд столбец

👩‍💻 Технический вопрос

Спросил 13 дней назад в CSS by Saba

 

как сделать абсолютную коробку отзывчивой? он не отвечает ширине: 100%

абсолютная позиция отзывчивый процентные значения относительное положение

👩‍💻 Технический вопрос

Спросил 14 дней назад в CSS Дженнифер

 

что такое высота строки

высота строки Свойство CSS вертикальное пространство текст

👩‍💻 Технический вопрос

Спросил 14 дней назад в CSS от Jasmine

 

как отображать что-то еще при наведении курсора на кнопку?

УС парить показать свойство

👩‍💻 Технический вопрос

Спросил 15 дней назад в CSS by Charlotte

 

Какие есть варианты выравнивания содержимого?

УС флексбокс оправдать содержание центральные элементы

👩‍💻 Технический вопрос

Спросил 15 дней назад в CSS by Confidence

 

как изменить ширину контейнера

контейнер ширина Свойство CSS процент

👩‍💻 Технический вопрос

Спросил 16 дней назад в CSS by Lungelo

 

css удалить подчеркивание из ссылки

CSS связь украшение текста подчеркнуть стиль

👩‍💻 Технический вопрос

Спросил 16 дней назад в CSS по Лунгело

 

в css как разместить элементы в списке рядом друг с другом, а не друг под другом

CSS список в соответствии встроенный блок поплавок

👩‍💻 Технический вопрос

Спросил 17 дней назад в CSS от Unisha

 

можете ли вы объяснить положение относительного элемента CSS?

УС позиция родственник вершина левый макет

👩‍💻 Технический вопрос

Спросил 18 дней назад в CSS by OFFA

 

как использовать медиа-запрос

медиа-запрос CSS техника Отзывчивый дизайн разрешение экрана

👩‍💻 Технический вопрос

Спросил 18 дней назад в CSS Рикке В.

 

Что такое линейный градиент?

линейно-градиентный фон веб-дизайн эффект градиента CSS-функция

👩‍💻 Технический вопрос

Спросил 18 дней назад в CSS Рикке В.

 

где их использовать?

УС единицы родственник эм

👩‍💻 Технический вопрос

Спросил 19 дней назад в CSS Мишель

 

Почему класс «Сегодня» не помещен непосредственно под класс «Визуальный»? Как мне сделать это так? .weatherAppBody { дисплей: блок; верхнее поле: 100 пикселей; поле справа: 300 пикселей; нижняя граница: 100px; поле слева: 300px; отступ: 80px 100px; } ч2 { размер шрифта: 20px; выравнивание текста: по левому краю; поле: 0 авто; плыть налево; } h3 { вес шрифта: 100; } .

текущая информация { отображение: встроенный блок; выравнивание текста: по левому краю; поле: 0 авто; } .localInfo { стиль списка: нет; отображение: встроенный блок; } .сегодня { выравнивание текста: вправо; поле сверху: 0px; поле справа: 0px; поплавок: справа; } .визуальный { стиль списка: нет; поплавок: справа; поле сверху: 0px; поле справа: 0px; ясно: оба; } .Полная неделя { размер шрифта: 20px; положение: нижнее; внизу: 0px; нижняя граница: 0px; }

УС флексбокс заказ имущества

👩‍💻 Технический вопрос

Спросил 19 дней назад в CSS Рикке В.

 

что такое непрозрачность

CSS непрозрачность прозрачность

👩‍💻 Технический вопрос

Спросил 19 дней назад в CSS Мишель

 

Когда я захожу в и помещаю фоновое изображение, как мне изменить его высоту и ширину?

фоновое изображение размер фона Свойство CSS

👩‍💻 Технический вопрос

Спросил 19 дней назад в CSS Мишель

 

Как сделать текст-заполнитель в поле ввода полужирным?

УС поле ввода текст-заполнитель полужирный

👩‍💻 Технический вопрос

Спросил 20 дней назад в CSS Стейси

 

как остановить повторение фонового изображения? Я хочу, чтобы он занимал весь экран.

фоновое изображение Свойство CSS фоновый повтор размер фона

👩‍💻 Технический вопрос

Спросил 21 день назад в CSS Честер

 

как переместить полосу прокрутки

CSS полоса прокрутки стиль

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS от Vennesa

 

как использовать высоту строки

CSS высота линии свойство регулировка

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS от Vennesa

 

что делает box-shadow?

УС коробка-тень HTML-элемент свойство эффект

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS Элизабет

 

как убрать фиолетовый цвет с гиперссылки?

ссылка цвет гиперссылка веб-дизайн Селектор CSS

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS Элизабет

 

что такое высота строки?

высота строки текст интервал веб-дизайн

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS Элизабет

 

как центрировать текст?

УС центр выравнивание текста начальная загрузка

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS Элизабет

 

Что такое свойство маржи?

УС маржинальное свойство HTML-элементы веб-дизайн

👩‍💻 Технический вопрос

Спросил 22 дня назад в CSS Элизабет

 

что такое маржа

маржа интервал HTML веб-разработка

👩‍💻 Технический вопрос

Спросил 25 дней назад в CSS by Francesca

 

радиус границы начинается в каком углу в CSS?

УС радиус границы углы

👩‍💻 Технический вопрос

Спросил 25 дней назад в CSS by EBONI

 

как убрать поля с элемента

CSS допуск Элемент

👩‍💻 Технический вопрос

Спросил 26 дней назад в CSS Татьяна

 

как кодировать страницу с фоновым изображением, которое адаптивно

фоновое изображение отзывчивый CSS медиа-запрос

👩‍💻 Технический вопрос

Спросил 26 дней назад в CSS Татьяна

 

как выровнять две кнопки по сторонам

CSS флексбокс выравнивание содержания кнопки

👩‍💻 Технический вопрос

Спросил 26 дней назад в CSS Татьяна

 

как раскрасить шрифт в навигационной панели

CSS панель навигации цвет шрифта

👩‍💻 Технический вопрос

Спросил 26 дней назад в CSS by Clarissa

 

Как изменить конкретное семейство шрифтов в синтаксисе

CSS семейство шрифтов синтаксис селектор

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS от Фоласайо

 

как добавить навигационный бургер на средний экран

навигация бургер меню медиазапросы отзывчивость

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS от Folasayo

 

как скрыть панель навигации для среднего экрана?

навигационная панель медиа-запрос Адаптивный дизайн

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS Флоренсия

 

как я могу центрировать css ul

CSS ул центр

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS от Alina

 

как сделать текст фиксированным

CSS текст фиксированная позиция окно просмотра прокрутка

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS от Фоласайо

 

какую утилиту CSS я могу использовать для увеличения моего изображения?

УС полезность изображение трансформировать шкала

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS by Soulinny

 

изменить размер шрифта меню код css

меню размер шрифта Свойство CSS Документация MDN

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS от Миган

 

как выровнять текст по вертикали внутри столбца сетки vw

выровнять по вертикали текст оч отзывчивый столбец сетки

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS by Meegan

 

Как вертикально выровнять текст внутри столбца

вертикальное выравнивание текст столбец Свойство CSS дисплей: гибкий выравнивание элементов: центр

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS by Meegan

 

Как заставить столбцы переключаться между 2 и 1 при изменении размера окна

CSS медиазапросы флексбокс Адаптивный дизайн

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS by Trang

 

почему мы не можем использовать text-align: center в css для центрирования изображения

выравнивание текста центрирование изображения элемент блочного уровня отображать поля

👩‍💻 Технический вопрос

Спросил 27 дней назад в CSS от Trang

 

как центрировать изображение

по центру изображение допуск флексбокс стиль

👩‍💻 Технический вопрос

Спросил 28 дней назад в CSS от Равнит

 

мой код не такой жирный, как хотелось бы

CSS вес шрифта стиль веб-дизайн

Просмотрите вопросы по программированию по темам: HTML CSS JavaScript Код ВС питон Реагировать Начальная загрузка Попутный ветер Джава PHP Node. js Рубин Идти .NET

прозрачность — Как определить эквивалентный непрозрачный цвет RGB для данного частично прозрачного цвета RGB на белом фоне

Я написал для этого инструмент: https://github.com/igrmk/blec. В вашем конкретном случае вы можете использовать его следующим образом:

 blec white deadbeef
 

Last ef — это шестнадцатеричное представление альфа-канала. Или вы можете использовать его так:

 blec white deadbe:0.75
 

Указание непрозрачности в виде десятичной дроби.

Обратите внимание, что предлагаемая формула Y = 255 - P * (255 - X) не совсем точна из-за гамма-коррекции. Точнее было бы 9(1/G) , где Y — результирующее значение RGB-компоненты, X — значение оверлейной RGB-компоненты, P — его непрозрачность, G — значение гаммы. Наиболее распространенное значение гаммы — 2,2. Причиной включения гамма-коррекции в формулу является перемещение компонентов в линейное пространство при расчете. Почти каждое пространство RGB, которое используется сегодня, интерпретирует компоненты цвета нелинейным образом, чтобы поместить больше информации о цвете в 8 бит. Исторически он был введен для компенсации нелинейности ЭЛТ-дисплеев.

Вот пример того, почему гамма-коррекция важна для смешивания. Давайте возьмем это красное изображение

и это синее изображение

Давайте возьмем первый полностью непрозрачный и установите непрозрачность второго изображения, равного оси x, как это

Теперь давайте смешаем их без гаммы. (гамма = 1)

Давайте включим гамма-коррекцию и сделаем то же самое (гамма = 2,2)

Как вы можете видеть, если мы не используем гамма-коррекцию, переход будет гораздо более локализованным. В центре явно более темные цвета. Если мы используем гамма-коррекцию, то переход и яркость становятся намного более плавными.

Последний градиент построен с использованием сглаживания.

Изображение содержит пиксели только двух цветов, но вероятность синего линейно увеличивается от 0 слева до 1 справа. Результат выглядит намного ближе к изображению с гаммой = 2,2 с точки зрения яркости и переходных цветов. Попробуйте посмотреть на это издалека. И это то, что вы, вероятно, ожидаете от смешивания двух цветов. Мы буквально смешиваем их, смешивая, как акварель в этом примере. Таким образом, гамма очень важна для смешивания, особенно когда непрозрачность близка к 0,5.

Давайте, наконец, сравним смешивание непрозрачного красного и синего с альфа 0,5, где эффект гамма-коррекции максимален.

В первом изображении гамма-коррекция не используется, во втором используется гамма 2,2, а в третьем используется дизеринг. Как видите, первый сильно отличается от двух других (если вы этого не видите, прочтите примечания ниже). Так что советую всегда использовать гамма-коррекцию. Если вы используете любой приличный редактор изображений, то, скорее всего, вы в безопасности, и гамма-коррекция включена по умолчанию.

Примечание 1: Чтобы сравнить дизеринг со смешиванием, вам нужно посмотреть на изображения в масштабе 100%, чтобы каждый пиксель изображения занимал ровно один пиксель экрана. Это почти никогда не происходит, если вы используете мобильный телефон или дисплей Retina. Если вы смотрите на изображения в другом масштабе, вероятно, вы смотрите на сглаженное изображение. Сглаживание может привести к очень неточным результатам, поскольку в данный момент оно не использует гамма-коррекцию. Я могу подтвердить это для Chrome 83 на Android 10 и для последней версии Safari на iOS 13. Думаю, для правильной работы требуется слишком много ресурсов. Таким образом, он эффективно уменьшает гамму дисплея примерно до 1,8, когда вы смотрите на очень контрастные зашумленные изображения.

Примечание 2: Не каждый дисплей хорошо откалиброван. Если вам кажется, что изображение с гаммой 2,2 и изображение с дизерингом дают разные цвета, у меня для вас плохие новости. Вы можете проверить гамму вашего монитора здесь http://web.mit.edu/jmorzins/www/gamma/adilger/gamma.html. Однако, если вы используете мобильное устройство, лучше использовать приложение, потому что сглаживание может привести к очень неточным результатам.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *