Вы можете использовать display: flex
для дочерних элементов и align-items: center
для вертикального центрирования содержимого.
Затем используйте свойство padding
(или margin
также может работать), чтобы оставить пространство между .child
элементы, как в следующем фрагменте.
.child{
display: flex;
flex-direction: row;
align-items: center;
width: 500px;
padding: 15px 0;
}
.icon{
width: 30px;
height: 30px;
border-radius: 100%;
border: 2px solid #0000ff;
display: flex;
align-items:center;
justify-content: center;
margin-right: 15px;
}
.text{
flex: 1;
}
.child.third .icon{
width: 50px;
height: 50px;
}
<div class="parent">
<div class="child first">
<div class="icon">1</div>
<div class="text">Foo bar baz</div>
</div>
<div class="child second">
<div class="icon">2</div>
<div class="text">Foo bar baz</div>
</div>
<div class="child third">
<div class="icon">3</div>
<div class="text">Foo bar baz<br/>Foo bar baz</div>
</div>
<div class="child fourth">
<div class="icon">4</div>
<div class="text">Foo bar baz<br/>Foo bar baz</div>
</div>
</div>
Но обратите внимание, что если тексты намного длиннее, чем значки, это может нарушить макет, и вам нужно присвоить stati c высоту child
Предметы. Но таким образом тексты могут перекрываться.