Как сделать знак плюс в точном центре круга на css?

Ссылка скопирована
28 февраля 2026 1 ответ

Добрый день. Возникла следующая проблема. Требовалось создать значок "плюс в кружке", где плюс находится точно в центре кружка. При этом сам плюс является after-псевдоэлементом для одного div-а.
Код псевдоэлемента:

content: '+'; 		 display: flex; 		 position: absolute; 		 z-index: 5; 		 font-size: 35px; 		 font-weight: 400; 		 color: white; 		 background-color: #1ED4B3; 		 border: solid 1px #1ED4B3; 		 border-radius: 50%; 		 width: 45px; 		 height: 45px; 		 align-items: center !important; 		 flex-direction:column !important; 		 justify-content: space-evenly !important;

content: '+'; display: flex; position: absolute; z-index: 5; font-size: 35px; font-weight: 400; color: white; background-color: #1ED4B3; border: solid 1px #1ED4B3; border-radius: 50%; width: 45px; height: 45px; align-items: center !important; flex-direction:column !important; justify-content: space-evenly !important;

Всё работает нормально для десктопных версий, но на всех мобильных браузерах проблема в том, что знак плюса в кружке сдвинут кверху, а не находится по центру.
Пробовал уже использовать знак заглавного плюса U+FF0B , пробовал использовать justify-content: space-between , justify-content: space-around , justify-content: center , align-items: stretch .

Есть идеи, из-за чего такое может быть и как это можно исправить?

Более полный код (включая класс div-а , к которому привязан псевдоэлемент):

.div__after{ 	display: flex; 	flex-direction: column; 	align-content: center; 	align-items: center; 	&::after{ 		 content: '+'; 		 display: flex; 		 position: absolute; 		 z-index: 5; 		 font-size: 35px; 		 font-weight: 400; 		 color: white; 		 background-color: #1ED4B3; 		 border: solid 1px #1ED4B3; 		 border-radius: 50%; 		 width: 45px; 		 height: 45px; 		 align-items: center !important; 		 flex-direction:column !important; 		 justify-content: space-evenly !important; 		@media (--xs-viewport){ 			top: calc(100% - 10px); 		} 		@media (--md-viewport) { 			top: 25%; 			left: calc(100% - 10.5px); 		} 		@media (--lg-viewport) { 			left: calc(100% - 7.5px); 		} 	} }

.div__after{ display: flex; flex-direction: column; align-content: center; align-items: center; &::after{ content: '+'; display: flex; position: absolute; z-index: 5; font-size: 35px; font-weight: 400; color: white; background-color: #1ED4B3; border: solid 1px #1ED4B3; border-radius: 50%; width: 45px; height: 45px; align-items: center !important; flex-direction:column !important; justify-content: space-evenly !important; @media (--xs-viewport){ top: calc(100% - 10px); } @media (--md-viewport) { top: 25%; left: calc(100% - 10.5px); } @media (--lg-viewport) { left: calc(100% - 7.5px); } } }

Дополнительно:

Сделайте плюс не шрифтом, а блоком из горизонтальной и вертикальной линий, потому что у шрифтов полно свойств:

Как сделать знак плюс в точном центре круга на css?

Чему к примеру равна горизонтальная линия вашего шрифтового плюса при размере 35px? Если у вас размер блока 45px, то линия должна быть так же с нечетным размером ровно 1px или 3px, или 5px в любом другом случае (1.2px, 3.6px, 4px) браузер начнет смещать ваш плюс вверх и вниз, что вы и наблюдаете.

Если же блок будет с четным значением, например 44px, тогда, чтобы плюс стал по центру у него должен быть размер 2px,4px и т.д..

Шрифты для такой задачи не подходят, тем более с изменением шрифта изменится и его центр.

  • Спасибо! Прошу прощения за, возможно, нубский вопрос, но как я смогу две пересекающиеся черты в content вставить?
  • vladimirir, одна черта - after, вторая - before. content:'' (пустой). размеры черточек сами задаете.
  • vladimirir, snippet
  • Сергей delphinpro, спасибо большое)

Ответы:

snippet

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Кирилл JS Ответ

Чтобы создать знак плюс в точном центре круга на CSS, вам нужно использовать позиционирование элементов и стилизацию для создания круга и знака плюс.

Начнем с создания круга. Для этого мы можем использовать элемент

с определенным радиусом и заданным цветом фона. Затем, чтобы поместить знак плюс в центр круга, мы можем использовать позиционирование относительно родительского элемента.

Вот пример кода на CSS, который позволит создать круг с знаком плюс в центре:

.circle {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background-color: #f00; /* цвет круга */
  position: relative;
}
 
.plus {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 30px;
  height: 5px;
  background-color: #fff; /* цвет знака плюс */
}
 
.vertical {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
 
.horizontal {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.circle { width: 100px; height: 100px; border-radius: 50%; background-color: #f00; /* цвет круга */ position: relative; } .plus { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 30px; height: 5px; background-color: #fff; /* цвет знака плюс */ } .vertical { position: absolute; top: 0; left: 50%; transform: translateX(-50%); } .horizontal { position: absolute; top: 50%; left: 0; transform: translateY(-50%); }

И вот пример HTML, который использует эти стили:

<div class="circle">
  <div class="plus">
    <div class="vertical"></div>
    <div class="horizontal"></div>
  </div>
</div>

<div class="circle"> <div class="plus"> <div class="vertical"></div> <div class="horizontal"></div> </div> </div>

Этот код создаст круг красного цвета с белым знаком плюс в центре. Вы можете настроить размеры, цвета и другие стили, чтобы подогнать его под ваши требования. Надеюсь, это поможет вам создать нужный дизайн!

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно