Попытка создать адаптивную мета-запись для почтовой открытки.
Идея состоит в том, что иногда мета-запись может иметь более одной категории внутри, и из-за этого мне нужно как-то обернуть элементы, но в в то же время для вертикального центрирования контента li
(например, аватара и значков).
Я пытался применить display: inline-flex
к .entry-meta
, чтобы иметь возможность использовать свойство align-items: center
, но в этом случае элементы списка - li
больше не переносятся, как при применении display: inline
к li
.
1. Метод display: inline
(без центрирования элементов по вертикали)
Этот метод корректно выполняет перенос и определяет, как мне нужны все элементы списка, но он не может центрировать по вертикали содержимое (например, аватар и значки)
article {
max-width: 450px;
background: #eee;
font-family: arial;
font-size: 12px;
text-transform: uppercase;
}
article a {
text-decoration: none;
}
.entry-meta {
list-style: none;
margin: 0;
padding: 0;
}
.entry-meta li {
display: inline;
margin-right: 10px;
background: #ccc;
}
.avatar {
display: inline-block;
width: 25px;
height: 25px;
border-radius: 100%;
background: #FA7059;
}
.icon {
display: inline-block;
width: 13px;
height: 13px;
background: #BE4C4E;
}
<article>
<ul class="entry-meta">
<li class="author">
<div class="avatar">
</div>
<span>By </span>
<a href="#">Admin</a>
</li>
<li class="date">
<span>On </span>
<time>Feb 22, 2019</time>
</li>
<li>
<span>On </span>
<a href="#">2 Comments</a>
</li>
<li class="categories">
<span class="icon">
</span>
<a href="#">Food</a>
<a href="#">Nature</a>
<a href="#">People</a>
<a href="#">Travel</a>
<a href="#">Trends</a>
<a href="">Business</a>
<a href="">Sport</a>
<a href="">Music</a>
<a href="">Gadgets</a>
<a href="#">Uncategorized</a>
</li>
<li class="tags">
<span class="icon">
</span>
<a href="">Red</a>
<a href="">Blue</a>
<a href="">Green</a>
<a href="">Yellow</a>
</li>
</ul>
</article>
2. Метод display: inline-flex
Категория li
перенесена неправильно, она разрывается на новую строку, но взамен содержимое центрируется по вертикали, как мне нужно.
article {
max-width: 450px;
background: #eee;
font-family: arial;
font-size: 12px;
text-transform: uppercase;
}
article a {
text-decoration: none;
}
.entry-meta {
list-style: none;
margin: 0;
padding: 0;
display: inline-flex;
flex-wrap: wrap;
align-items: center;
}
.entry-meta li {
margin-right: 10px;
background: #ccc;
display: inline-flex;
flex-wrap: wrap;
align-items: center;
}
.avatar {
display: inline-block;
width: 25px;
height: 25px;
border-radius: 100%;
background: #FA7059;
}
.icon {
display: inline-block;
width: 13px;
height: 13px;
background: #BE4C4E;
}
<article>
<ul class="entry-meta">
<li class="author">
<div class="avatar">
</div>
<span>By </span>
<a href="#">Admin</a>
</li>
<li class="date">
<span>On </span>
<time>Feb 22, 2019</time>
</li>
<li>
<span>On </span>
<a href="#">2 Comments</a>
</li>
<li class="categories">
<span class="icon">
</span>
<a href="#">Food</a>
<a href="#">Nature</a>
<a href="#">People</a>
<a href="#">Travel</a>
<a href="#">Trends</a>
<a href="">Business</a>
<a href="">Sport</a>
<a href="">Music</a>
<a href="">Gadgets</a>
<a href="#">Uncategorized</a>
</li>
<li class="tags">
<span class="icon">
</span>
<a href="">Red</a>
<a href="">Blue</a>
<a href="">Green</a>
<a href="">Yellow</a>
</li>
</ul>
</article>
Итак, другими словами, мне нужно каким-то образом сохранить элементы списка для переноса, как они есть с display: inline
, но в то же время центрировать содержимое по вертикали внутри.
PS свойство vertical-align: middle
не очень помогает:)