Создание адаптивных колец в CSS очень сложно.Лучшее, что я нашел, - это просто создать два круга, наложенных друг на друга, где фон верхнего круга совпадает с фоном контейнера.Вы можете сделать это с 2x элементами, как в моем примере, или с псевдоклассом.
Плюсы:
- Вы получаете много контроля
- Легко добавьте другой контент(например, круговые диаграммы), поскольку содержимое «замаскировано»
Минусы:
- Фон должен быть ровного цвета, и через кольцо ничего не будет отображаться
.outer {
width: 200px;
height: 200px;
border-radius: 50%;
position: relative;
background-color: #9273B0;
margin: 10px;
cursor:pointer;
}
.inner {
position: absolute;
width: 50%;
height: 50%;
border-radius: 50%;
background-color: #ffffff;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: all 0.5s ease-out;
}
.outer:hover .inner {
width: 90%;
height: 90%;
}
<div class="outer">
<div class="inner"></div>
</div>
Если вы ДОЛЖНЫ видеть фон сквозь кольцо, я бы посмотрел путь SVG-клипа, но это довольно быстро усложняется.