Я считаю, что самое простое решение в таком случае - использовать другую единицу измерения, например rem
. Rem - это относительная единица измерения, основанная на размере шрифта root вместо родительского размера, например em
. Таким образом, все, что определено как размер шрифта Body, будет влиять на все размеры rem.
Что круто, так это то, что вы также можете использовать размеры на основе rem для width
, height
, padding
, box-shadow
, border
и так далее. Это означает, что при изменении базового размера ВСЕ, используя rem, изменят размеры единиц.
Типичная настройка выглядит следующим образом:
Это важно, чтобы получить легко понимаемый базовый размер
body {
font-size: 62.5%;
/* uses browser base size (16px) to make 1rem = 10px for easy math! */
}
Затем в вашем другом CSS измените все, что вы хотите масштабировать, чтобы основываться на rem. (Я здесь немного упрощаю)
.chart-skills {
width: 80rem;
height: 40rem;
}
.chart-skills::before {
border: 4.5rem solid rgba(211, 211, 211, .3);
border-top-left-radius: 40rem;
border-top-right-radius: 40rem;
}
.chart-skills::after {
bottom: 1rem;
}
.chart-skills li {
border-bottom-left-radius: 40rem;
border-bottom-right-radius: 40rem;
/* I might make the border radius 50% instead if that's easier */
}
Затем в медиа-запросе просто измените body{ font-size: xx%}
на что-то, что правильно масштабируется.