color() в CSS — колір у просторі srgb або display-p3


Опис

автор: Bond

Загальний опис

автор: NagarD

Порада

Перш ніж використовувати функцію color(), перевірте підтримку необхідного простору кольорів за допомогою CSS медіа-функції color-gamut.

автор: Bond
Порада

Використовуйте попередньо визначені простори кольорів з обережністю, оскільки підтримка їх може відрізнятися на різних пристроях і браузерах.

автор: Bond

Синтаксис

color(colorspace p1 p2 p3[ / A]);

Функція color може отримувати 3 значень:

<colorspace>

Ідентифікатор (ім'я) попередньо визначеного простору кольорів, наприклад srgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, xyz, xyz-d50 і xyz-d65.

автор: Bond

<p1>, <p2>, <p3>

Значення параметрів, які приймає простір кольорів. Це можуть бути числові значення або відсоткові значення.

автор: Bond

<A>

Значення прозорості (альфа-каналу) від 0 до 1

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 3.5 12 3
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

+ запропонувати свій приклад у пісочниці

Наведенням курсору на елемент .box, його фоновий колір змінюється з червоного на синій, використовуючи функцію color().

HTML

<div class="example">
  <div class="description">
    <h2>Приклад 1</h2>
    <p>Наведенням курсору на елемент .box, його фоновий колір змінюється з червоного на синій, використовуючи функцію color().</p>
  </div>
  <div class="result">
    <div class="container">
      <div class="box"></div>
    </div>
  </div>
</div>

CSS

.example {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 50px;
}

.description {
  background-color: lightgray;
  padding: 20px;
  font-family: Arial, sans-serif;
}

.result {
  display: flex;
  justify-content: center;
}

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
}

.box {
  width: 200px;
  height: 200px;
  background-color: color(srgb 255 0 0);
  transition: background-color 0.3s ease;
}

.box:hover {
  background-color: color(srgb 0 0 255);
}
автор: Bond

Цей приклад демонструє, як можна використовувати функцію color() для встановлення кольорів.

HTML

<div class="example">
  <div class="description">
    <h2>Приклад 2: використання функції color()</h2>
    <p>Два елементи .box мають різний початковий фоновий колір (червоний та синій) за допомогою функції color(). Це демонструє, як можна використовувати функцію color() для встановлення кольорів в елементах і відрізняти їх між собою.</p>
  </div>
  <div class="result">
    <div class="container">
      <div class="box box1"></div>
      <div class="box box2"></div>
    </div>
  </div>
</div>

CSS

.example {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 50px;
}

.description {
  background-color: lightgray;
  padding: 20px;
  font-family: Arial, sans-serif;
}

.result {
  display: flex;
  justify-content: center;
}

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
}

.box {
  width: 100px;
  height: 100px;
  margin: 10px;
}

.box1 {
  background-color: color(srgb 255 0 0);
}

.box2 {
  background-color: color(srgb 0 0 255);
}
автор: Bond

Верхній ряд — межі каналів: color(srgb 1 0 0) проти color(srgb 255 0 0) (те саме через затискання) і проти color(srgb 255 128 0), який стає чистим жовтим. Далі — чистий зелений у чотирьох просторах: на sRGB-екрані всі чотири однакові. Потім пара, де перетворення справді видно на око, ряд srgb проти srgb-linear за однакових чисел, і плитка з комами, оголошення якої відкинуто.

HTML

<p class="head">Канали від 0 до 1: усе, що більше, затискається до межі:</p>
<div class="row">
    <span class="sw c1">color(srgb 1 0 0)</span>
    <span class="sw c2">color(srgb 255 0 0)</span>
    <span class="sw c3">color(srgb 255 128 0) — жовтий!</span>
    <span class="sw c4">color(srgb 1 0.5 0)</span>
</div>

<p class="head">Чистий зелений у чотирьох просторах — на sRGB-екрані різниці немає:</p>
<div class="row tight">
    <span class="sw g1">srgb</span><span class="sw g2">display-p3</span>
    <span class="sw g3">a98-rgb</span><span class="sw g4">rec2020</span>
</div>

<p class="head">А тут перетворення видно: ті самі числа 0.3 0.7 0.4 у двох просторах —
    у P3 зелений помітно чистіший:</p>
<div class="row tight">
    <span class="sw p1">display-p3</span><span class="sw p2">srgb</span>
</div>

<p class="head">srgb проти srgb-linear за однакових чисел — гамма-крива:</p>
<div class="row">
    <span class="sw l1">srgb 0.5 0.5 0.5</span>
    <span class="sw l2">srgb-linear 0.5 0.5 0.5</span>
    <span class="sw l3">srgb 0.2 0.2 0.2</span>
    <span class="sw l4">srgb-linear 0.2 0.2 0.2</span>
</div>

<p class="head">Коми ламають оголошення — плитка лишилась сірою заглушкою:</p>
<div class="row">
    <span class="sw bad">color(srgb 1, 0, 0)</span>
</div>

CSS

.head {
    margin: 16px 0 6px;
    color: #5a6472;
    font-size: .9em;
}

.row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.row.tight {
    gap: 0;
}

.sw {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 150px;
    height: 62px;
    padding-bottom: 4px;
    outline: 1px solid #b9c6d8;
    color: #fff;
    font: 600 11px/1 ui-monospace, monospace;
    text-align: center;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .65);
}

.c1 { background: color(srgb 1 0 0); }
.c2 { background: color(srgb 255 0 0); }
.c3 { background: color(srgb 255 128 0); color: #333; text-shadow: none; }
.c4 { background: color(srgb 1 0.5 0); }

.g1 { background: color(srgb 0 1 0); }
.g2 { background: color(display-p3 0 1 0); }
.g3 { background: color(a98-rgb 0 1 0); }
.g4 { background: color(rec2020 0 1 0); }

.p1 { background: color(display-p3 0.3 0.7 0.4); }
.p2 { background: color(srgb 0.3 0.7 0.4); }

.l1 { background: color(srgb 0.5 0.5 0.5); }
.l2 { background: color(srgb-linear 0.5 0.5 0.5); }
.l3 { background: color(srgb 0.2 0.2 0.2); }
.l4 { background: color(srgb-linear 0.2 0.2 0.2); }

.bad {
    background: #c9ced6;
    color: #333;
    text-shadow: none;
    background-color: color(srgb 1, 0, 0);
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід