Как я могу выровнять этот текст по вертикали в середине div?
Я уже пытался изменить позицию с помощью relative/absolute и изменить top и left абзаца, но это вообще не работает.
div.roxo{
background-color: purple;
padding: 40px;
}
div.amarelo{
background-color: yellow;
height: 300px;
width: 25%;
float: left;
}
div.vermelho{
background-color: red;
height: 300px;
width: 50%;
float: left;
}
div.verde{
background-color: green;
height: 300px;
width: 25%;
float: left;
}
div.azul{
background-color: blue;
padding: 40px;
}
p{
margin: 0;
text-align: center;
vertical-align: middle;
}<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div class = "roxo">
<p>roxo</p>
</div>
<div class = "amarelo">
<p>amarelo</p>
</div>
<div class = "vermelho">
<p>vermelho</p>
</div>
<div class = "verde">
<p>verde</p>
</div>
<div class = "azul">
<p>azul</p>
</div>
</body>
</html>





Вы можете сделать это с помощью flexbox.
div.roxo{
background-color: purple;
padding: 40px;
}
div.amarelo{
display:flex;
justify-content:center;
align-items:center;
background-color: yellow;
height: 300px;
width: 25%;
float: left;
}
div.vermelho{
display:flex;
justify-content:center;
align-items:center;
background-color: red;
height: 300px;
width: 50%;
float: left;
}
div.verde{
display:flex;
justify-content:center;
align-items:center;
background-color: green;
height: 300px;
width: 25%;
float: left;
}
div.azul{
display:flex;
justify-content:center;
align-items:center;
background-color: blue;
padding: 40px;
}
p{
margin: 0;
text-align: center;
vertical-align: middle;
}<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div class = "roxo">
<p>roxo</p>
</div>
<div class = "amarelo">
<p>amarelo</p>
</div>
<div class = "vermelho">
<p>vermelho</p>
</div>
<div class = "verde">
<p>verde</p>
</div>
<div class = "azul">
<p>azul</p>
</div>
</body>
</html>Просто добавь:
display:flex;
justify-content:center;
align-items:center;
в ваш div CSS.
Вы можете узнать больше о flexbox здесь, на https://css-tricks.com/snippets/css/a-guide-to-flexbox/.