RGBA - Альфа-канал как отдельный класс - PullRequest
0 голосов
/ 17 октября 2018

Допустим, у нас есть список классов, хранящих цвета фона.

.bgr-red //background-color: rgb(255, 0, 0);
.bgr-green //background-color: rgb(0, 0 , 255);
.bgr-blue //background-color: rgb(0, 128, 0);

И у нас есть div, использующий один из этих классов.

<div class="bgr-red">...</div>

Есть ли способ, которым яМожно создать новый набор классов, которые содержат альфа-каналы?Примерно так (я пробовал этот метод, он не работал):

.alpha-90 //background-color: rgba(inherit, inherit, inherit, .9);
.alpha-80 //background-color: rgba(inherit, inherit, inherit, .8);
.alpha-70 //background-color: rgba(inherit, inherit, inherit, .7);

Конечной целью является возможность поместить непрозрачность цвета фона в div отдельно от остальной части значения цвета фона?Создайте div как-то так:

<div class="bgr-red alpha-80">...</div>

Спасибо.

1 Ответ

0 голосов
/ 17 октября 2018

Используйте переменные CSS:

.bgr-red {
  background-color: rgba(255, 0, 0, var(--a, 1));
}

.bgr-green {
  background-color: rgba(0, 0, 255, var(--a, 1));
}

.bgr-blue {
  background-color: rgba(0, 128, 0, var(--a, 1));
}

.alpha-90 {
  --a: 0.9;
}

.alpha-70 {
  --a: 0.7;
}

.alpha-10 {
  --a: 0.1;
}
<div class="bgr-red">...</div>

<div class="bgr-red alpha-70">...</div>

<div class="bgr-red alpha-10">...</div>

А для лучшей поддержки вы можете рассмотреть псевдоэлемент для создания фонового слоя и настройки непрозрачности:

div {
  position: relative;
  z-index: 0;
}

div::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: -1;
}

.bgr-red::before {
  background-color: rgb(255, 0, 0);
}

.bgr-green::before {
  background-color: rgb(0, 0, 255);
}

.bgr-blue::before {
  background-color: rgb(0, 128, 0);
}

.alpha-90::before {
  opacity: 0.9;
}

.alpha-70::before {
  opacity: 0.7;
}

.alpha-10::before {
  opacity: 0.1;
}
<div class="bgr-red">...</div>

<div class="bgr-red alpha-70">...</div>

<div class="bgr-red alpha-10">...</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...