CSS круг кольцевая диаграмма прозрачный фон - PullRequest
1 голос
/ 31 марта 2020

Привет. Я пытаюсь создать в центре «кольцевую диаграмму», которая выглядит следующим образом:

enter image description here

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

:root {
  --size: 90px;
  --bord: 20px;
}

.chart {
  width: var(--size);
  height: var(--size);
  margin: 1em auto;
  border-radius: 50%;
  background-image: conic-gradient(lightseagreen var(--value), lightgrey var(--value));
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.chart::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: calc(100% - var(--bord));
  height: calc(100% - var(--bord));
  background: white;
  border-radius: inherit;
}

.x-60 {
  --value: 60%;
}

.x-20 {
  --value: 20%;
}
<div class="chart x-60">

</div>

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

Как мне добиться этого, если изменить фон на «Нет», просто сделав «круг» на графике ie: enter image description here

Спасибо.

1 Ответ

1 голос
/ 31 марта 2020

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

:root {
  --size: 80px;
  --bord: 10px;
}

.chart {
  width: var(--size);
  height: var(--size);
  margin: 1em auto;
  border-radius: 50%;
  background: conic-gradient(lightseagreen var(--value), lightgrey var(--value));
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - var(--bord)),#fff calc(100% - var(--bord) + 1px));
          mask:radial-gradient(farthest-side,transparent calc(100% - var(--bord)),#fff calc(100% - var(--bord) + 1px));
}

.x-60 {
  --value: 60%;
}

.x-20 {
  --value: 20%;
}

body {
  background:linear-gradient(to right,yellow,blue);
}
<div class="chart x-60">

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