Почему CSS align-items не центрирует мой текст
.top-part {
position: relative;
display: flex;
background: rgba(51, 102, 255,0.7);
width: 100%;
height: 8cm;
background-position: center;
background-size: cover;
}
.not-content {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
font-family:'Consolas','Courier New','Trebuchet MS';
color: white;
line-height: .5cm;
flex-wrap: wrap;
}
<section class="top-part">
<div class="not-content">
<h1><strong>BIG TEXT</strong></h1>
<h4>TEXT</h4>
</div>
</section>
я не знаю, какую ошибку я допустил, "align-items: center;" не работает как должно быть, он не центрирует мой текст горизонтально
Flexbox - это излишество в вашем случае. Просто text-align: center;
будет работать нормально.
.not-content {
text-align: center;
}
<div class="not-content">
<h3>This is an H3 heading</h3>
<h4>An H4 heading</h4>
</div>
Однако, первоначальная проблема, с которой вы столкнулись, связана с тем, что flexbox имеет размер, равный размеру содержимого. Это происходит потому, что ваш класс top-part
имеет значение display: flex
вместо display: block
. Ниже я выделил элемент в Chrome devtools, чтобы проиллюстрировать, насколько велика область содержимого flexbox; обратите внимание, что в нее помещается только текст.
Если вы удалите display: flex
из класса top-part
, он будет делать то, что вы ожидаете.
дайте контейнеру <div class="not-content">
a width: 100%
;, он будет работать :
.not-content {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
font-family: "Consolas", "Courier New", "Trebuchet MS";
color: white;
line-height: 0.5cm;
flex-wrap: wrap;
width: 100%;
}