Как добавить форму круга в прямоугольник div [дубликат]

Я хотел добавить форму круга в середине прямоугольного div, например:

Вот HTML:

      <div class="p-5 mb-3 mainInfo"></div>

И с этим CSS:

      .mainInfo{
  background-color: #fff;
  border: .01rem round #e0e1ed;
  border-radius: 20px;
  color: #585CA1;
}

А вот так выглядит прямоугольник div:

Итак, как я могу добавить круг в середине этого div?

1 ответ

Я добился этого absoluteпозиционирование и ::beforeселектор. ::before высота и цвет фона такие же, как у контейнера .mainInfo, что делает тень круга скрытой внутри контейнера.

HTML:

      <div class="mainInfo">
  <div class="circle">
  </div>
</div>

CSS:

      .mainInfo{
  background-color: #fff;
  border: .01rem round #e0e1ed;
  border-radius: 20px;
  color: #585CA1;
  width:100%;
  height:5em;
  box-shadow: 0px 0px 17px -5px rgba(0,0,0,0.75);
  margin-top: 3em;
  display: flex;
  align-items: center;
  justify-content: center;
}

.circle {
  position: relative;
  width: 8em;
  height: 8em;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0px 0px 17px -5px rgba(0,0,0,0.65);
}

.circle:before{
    position: absolute;
    content: "";
    width: 15em;
    height: 5em;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    z-index: 100;
}

Ссылка на демо

Другие вопросы по тегам