
Для формирования круга в веб-разметке достаточно одного блока div и правильного применения CSS-свойств. Основное свойство для этого – border-radius. Значение 50% превращает квадратный элемент в идеальный круг независимо от размеров блока.
Размер круга задается через width и height. Чтобы круг был равномерным, эти значения должны совпадать. Например, width: 100px; height: 100px; создаст круг диаметром 100 пикселей. Для адаптивного дизайна можно использовать относительные единицы, например em или vh/vw.
Цвет круга задается через background-color. Для прозрачности применяют rgba, например background-color: rgba(255, 0, 0, 0.5);. Для добавления границы используют border с указанием толщины, стиля и цвета, например border: 2px solid #000;.
Для размещения круга на странице используют display и position. display: inline-block позволяет располагать несколько кругов в ряд, а position: absolute или relative – точно позиционировать круг относительно родительского блока.
Выбор тега для круга: div или span
Если круг предполагается как самостоятельный блок с фиксированными размерами, проще использовать div. Для встроенных элементов, например, в тексте или внутри кнопки, удобнее span.
| Критерий | div | span |
|---|---|---|
| Контекст отображения | Блочный | Строчный (нужен inline-block или block) |
| Управление размерами | Прямое через width и height | Требует display: inline-block/block |
| Использование внутри текста | Нарушает поток текста | Безопасно для текста |
| Применение CSS-псевдоклассов | Все псевдоклассы работают | Все псевдоклассы работают |
Задание ширины и высоты круга в CSS
Для адаптивных макетов можно использовать относительные единицы, такие как em, rem или %. Например, width: 20%; height: 20%; создаст круг, размер которого будет зависеть от родительского контейнера.
Если требуется круг с фиксированным радиусом, проще использовать свойство border-radius на элементе с одинаковой шириной и высотой. Например, border-radius: 50%; автоматически превращает квадрат в круг независимо от размеров.
Для сохранения пропорций при изменении ширины или высоты через медиазапросы важно, чтобы оба значения обновлялись синхронно. Например, при ширине 120px высота также должна быть 120px, чтобы круг не превратился в овал.
В сочетании с display: inline-block; или flex круг легко центрируется внутри контейнера. При масштабировании страницы фиксированные пиксели сохраняют форму, а относительные единицы позволяют кругу подстраиваться под размеры родителя.
Использование border-radius для формирования круга

Для создания круга с помощью CSS используется свойство border-radius. Ключевой принцип – сделать все углы полностью закругленными.
Базовая форма круга задается равными шириной и высотой блока:
- Установите
widthиheightодинаковыми, например, 100px. - Примените
border-radius: 50%– это гарантирует, что блок станет идеальным кругом.
Пример CSS для круга диаметром 100px:
.circle {
width: 100px;
height: 100px;
background-color: #3498db;
border-radius: 50%;
}
Рекомендации при работе с border-radius:
- Если ширина и высота не равны, круг превратится в овал.
- Процентное значение
border-radiusвсегда относится к размеру блока по соответствующей оси. - Для анимации изменения формы можно использовать переходы:
transition: border-radius 0.3s;. - Для нескольких слоев можно комбинировать
border-radiusсbox-shadowдля создания эффекта объема.
Таким образом, border-radius: 50% при равных размерах блока – самый простой и надежный способ формирования круга без использования дополнительных элементов или графики.
Цвет заливки и границы круга
Цвет заливки круга определяется свойством background-color. Для точного контроля можно использовать:
- HEX-коды:
#FF5733,#00FF00 - RGB:
rgb(255, 87, 51),rgb(0, 255, 0) - RGBA для прозрачности:
rgba(255, 87, 51, 0.5) - HSL:
hsl(9, 100%, 60%)
Граница круга задается свойствами border-width, border-style и border-color. Практические рекомендации:
- Толщина границы: от 1px до 10px в зависимости от визуального акцента.
- Стиль границы:
solid– сплошная,dashed– пунктирная,dotted– точечная. - Цвет границы: выбирайте контрастный оттенок для выделения или совпадающий с фоном для мягкого эффекта.
Пример CSS для круга с красной заливкой и черной границей:
.circle {
width: 150px;
height: 150px;
border-radius: 50%;
background-color: #FF0000;
border: 3px solid #000000;
}
Для плавных переходов цвета границы и заливки используйте transition:
.circle {
transition: background-color 0.3s, border-color 0.3s;
}
.circle:hover {
background-color: #00FF00;
border-color: #333333;
}
Применение прозрачности и градиентов позволяет создавать сложные визуальные эффекты без использования графических файлов:
- Градиент заливки:
background: linear-gradient(45deg, #FF0000, #0000FF); - Полупрозрачная граница:
border-color: rgba(0,0,0,0.5);
Центрирование круга на странице

Для абсолютного центрирования круга используйте контейнер с display: flex и свойства justify-content: center и align-items: center. Контейнер должен иметь фиксированную высоту, например 100vh, чтобы центрирование происходило по всей высоте экрана.
Круг создаётся с помощью border-radius: 50%. Размер задаётся через width и height одинаковыми значениями, например 200px на 200px. Цвет задаётся через background-color.
Пример CSS для контейнера и круга:
CSS:
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.circle {
width: 200px;
height: 200px;
background-color: #3498db;
border-radius: 50%;
}
Если требуется центрирование без Flexbox, используйте position: absolute и комбинацию top: 50%, left: 50% с transform: translate(-50%, -50%). Этот способ подходит для фиксированных или динамических размеров круга.
Для адаптивного дизайна размеры круга можно задавать в vw или vh, например width: 20vw; height: 20vw;, чтобы круг сохранял пропорции и оставался центрированным на разных экранах.
Избегайте использования margin: auto для вертикального центрирования, так как этот метод надёжно работает только по горизонтали, если нет Flexbox или абсолютного позиционирования.
Добавление текста внутри круга

Для центрирования текста внутри круга используйте display: flex с align-items: center и justify-content: center. Элементу задайте одинаковые width и height и border-radius: 50% для формирования окружности.
Пример CSS: .circle { width: 120px; height: 120px; border-radius: 50%; background-color: #2196F3; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; font-size: 16px; }
Для многострочного текста используйте line-height, близкий к высоте строки, чтобы строки равномерно располагались. При ограниченном пространстве применяйте padding и overflow: hidden.
Адаптивный размер текста можно задать через font-size: clamp(12px, 4vw, 16px), что обеспечит читаемость на разных экранах без изменения размеров круга.
Для визуального выделения текста используйте text-shadow или градиенты через background-clip: text, не нарушая форму круга.
Создание анимации вращения круга
Для анимации вращения круга в HTML и CSS используется свойство transform: rotate() совместно с @keyframes. Размер круга задаётся через width и height, а форма поддерживается border-radius: 50%.
Пример кода для вращения круга за 4 секунды бесконечно:
HTML:
<div class=»circle»></div>
CSS:
.circle {
width: 100px;
height: 100px;
 >border-radius: 50%;
 >background-color: #3498db;
 >animation: spin 4s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
Рекомендации:
- Для плавности используйте linear в анимации.
- Можно изменить направление вращения, задав отрицательные значения угла.
- Для ускорения или замедления изменяйте длительность анимации (например, 2s или 6s).
- Добавление transform-origin: center обеспечивает точное вращение по центру круга.
Для многослойного эффекта создавайте несколько кругов с разными скоростями и цветами, комбинируя их с абсолютным позиционированием внутри контейнера.
Адаптация круга под разные размеры экранов
Для масштабирования круга на различных устройствах рекомендуется использовать относительные единицы измерения: %, vw, vh, em, rem. Например, установка ширины и высоты через vw позволит кругу изменяться пропорционально ширине окна браузера:
CSS:
`.circle { width: 20vw; height: 20vw; border-radius: 50%; background-color: #3498db; }`
Использование max-width и min-width предотвращает слишком большой или слишком маленький размер круга на экранах экстремальных размеров:
`.circle { min-width: 50px; max-width: 300px; }`
Для адаптации на разных точках прерывания применяются медиа-запросы. Например, на экранах меньше 480px можно уменьшить диаметр на 30%:
`.circle { width: 20vw; height: 20vw; } @media (max-width: 480px) { .circle { width: 14vw; height: 14vw; } }`
Если круг должен сохранять центрирование, используйте flexbox или grid с выравниванием по центру:
`.container { display: flex; justify-content: center; align-items: center; }`
Для адаптивных текстур или градиентов внутри круга рекомендуется применять background-size: cover или contain, чтобы фон корректно масштабировался вместе с элементом.
Вопрос-ответ:
Как с помощью HTML и CSS создать простой круг?
Для создания круга нужно использовать элемент HTML, например
. Такой способ подходит для одиночных кругов на странице.
Можно ли изменить цвет круга с помощью CSS без изменения HTML-кода?
Да, цвет круга можно менять только через CSS. Если у вас есть элемент с классом, например .circle, вы можете задать background-color для этого класса. Пример: .circle { background-color: blue; width: 100px; height: 100px; border-radius: 50%; }. При необходимости цвет можно менять динамически с помощью псевдоклассов или анимации.
Как сделать круг адаптивным, чтобы его размер менялся в зависимости от ширины экрана?
Адаптивный круг создается с использованием процентов или единиц vw/vh вместо фиксированных пикселей. Например, width: 20vw; height: 20vw; border-radius: 50%; создаст круг, который будет изменять размеры вместе с шириной окна. При этом важно, чтобы ширина и высота оставались одинаковыми, иначе форма станет овальной.
Можно ли создать несколько кругов и расположить их рядом друг с другом с помощью CSS?
Да, для этого удобно использовать flexbox или grid. Например, обернуть несколько div с классом .circle в контейнер с display: flex; gap: 10px;. Каждый круг будет сохранять форму благодаря border-radius: 50% и одинаковым width и height. Grid позволяет более точно контролировать расположение кругов в строках и колонках.
Как добавить тень или границу к кругу через CSS?
Чтобы добавить тень, используют свойство box-shadow, например: box-shadow: 5px 5px 10px rgba(0,0,0,0.5);. Для границы применяют border: 2px solid black;. Эти свойства можно комбинировать, чтобы круг выглядел объемным или имел выделение. При этом форма круга сохраняется благодаря border-radius: 50%.
