Есть несколько способов достичь того, что вы хотите.Djamel предоставляет подходящее решение и, конечно, оно будет работать так же хорошо, как и мое решение, однако это не будет работать, если вы хотите, чтобы элемент реагировал.
Мое решение следующее:
.circle {
position: relative;
display: block;
width:500px;
height:500px;
border-radius:250px;
font-size:50px;
color:#fff;
background:#000;
text-align: center;
}
.inner-circle {
position: relative;
top: 50%;
transform:translateY(-50%);
}
<div class="circle">
<div class="inner-circle">
Hello I am A Circle
</div>
</div>
На практике использование перевода все еще является правильным способом для адаптивного круга с содержанием в нем.Вы могли бы использовать flex, но, конечно, это связано с отсутствием поддержки некоторых старых браузеров.Но, как правило, вы можете обнаружить, что это не проблема.
Чтобы сделать его полностью отзывчивым, вместо этого вы должны использовать свойства max-width / height.
Если вы хотите использовать flex вместо этого, используйте это решение:
.circle
{
position: relative;
display: flex;
width:500px;
height:500px;
border-radius:250px;
font-size:50px;
color:#fff;
background:#000;
align-items: center;
justify-content: center;
}
.inner-circle {
/* No code needed */
}
<div class="circle">
<div class="inner-circle">
Hello I am A Circle
</div>
</div>
Надеюсь, это решение для вас.