我在某些列表框中有一些可变长度的文本,这会导致不匹配,因为标签中的文本不是垂直对齐的。
我尝试了各种 flexbox 选项以及标准的垂直对齐方式,但都无济于事。
有什么想法可以让 Flexbox 中的 a 标签内的文本居中吗?我已将 Inspect Element 中的 CSS 元素添加到 Plunker,因此并非所有部分都相关,但您会明白的。 https://plnkr.co/edit/EAwV0OtXg7Z8mSsHQoho?p=preview
.mobile-buttons > ul.side-list {
display:flex;
justify-content: space-around;
align-self:center;
flex-wrap:wrap;
text-align: center;
list-style: none;
margin-left: 0;
margin-bottom: 1.938em;
margin: 0.937em 0 0.937em 0;
}
.mobile-buttons > ul.side-list li {
display: inline-flex;
background: none;
list-style: none;
margin: 0;
padding: 0;
font-size: 0.913em;
line-height: 1.538;
}
.mobile-buttons .blue-bg {
margin-bottom: 10px;
max-width: 150px;
min-height: 17px;
min-width: 150px;
font-size: 1em;
min-height: 17px;
height: 40px;
text-decoration: none;
font-weight: bold;
display: inline-block;
min-height: 17px;
padding: 27px 2px 27px;
text-align: center;
color: #fff;
line-height: 1.15em;
top: 1px;
position: relative;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.btn, a.btn {
text-decoration: none;
font-weight: bold;
display: inline-block;
min-height: 17px;
max-width: 180px;
min-width: 180px;
padding: 27px 2px 27px;
text-align: center;
color: #fff;
line-height: 1.15em;
top: 1px;
position: relative;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.blue-bg {
border: #1D5FD5 1px solid;
text-shadow: #0a39c2 0 1px 0;
box-shadow: inset 0px 1px 1px 0px #8aa2e2, 0px 1px 2px 0 #696b6b;
background: linear-gradient(to bottom, #4089e9 0%,#1d5fd5 100%);
}
<section class="mobile-buttons lines-bg clearfix row">
<ul class="side-list">
<li><a href="/link1" class="btn blue-bg">The First Menu</a></li>
<li><a href="/link2" class="btn blue-bg">Long Description on Second Menu</a></li>
<li><a href="/link3" class="btn blue-bg">Short 3rd Menu</a></li>
<li><a href="/link4" class="btn blue-bg">Extra description on fourth menu option</a></li>
</ul>
</section>
最佳答案
您可以在 .mobile-buttons .blue-bg
中使用 display:flex
:
.mobile-buttons > ul.side-list {
display:flex;
justify-content: space-around;
align-self:center;
flex-wrap:wrap;
text-align: center;
list-style: none;
margin-left: 0;
margin-bottom: 1.938em;
margin: 0.937em 0 0.937em 0;
}
.mobile-buttons > ul.side-list li {
display: inline-flex;
background: none;
list-style: none;
margin: 0;
padding: 0;
font-size: 0.913em;
line-height: 1.538;
}
.mobile-buttons .blue-bg {
margin-bottom: 10px;
max-width: 150px;
min-height: 17px;
min-width: 150px;
font-size: 1em;
min-height: 17px;
height: 40px;
text-decoration: none;
font-weight: bold;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
min-height: 17px;
padding: 27px 2px 27px;
text-align: center;
color: #fff;
line-height: 1.15em;
top: 1px;
position: relative;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
justify-content: center;
align-items: center;
}
.btn, a.btn {
text-decoration: none;
font-weight: bold;
display: inline-block;
min-height: 17px;
max-width: 180px;
min-width: 180px;
padding: 27px 2px 27px;
text-align: center;
color: #fff;
line-height: 1.15em;
top: 1px;
position: relative;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.blue-bg {
border: #1D5FD5 1px solid;
text-shadow: #0a39c2 0 1px 0;
box-shadow: inset 0px 1px 1px 0px #8aa2e2, 0px 1px 2px 0 #696b6b;
background: linear-gradient(to bottom, #4089e9 0%,#1d5fd5 100%);
}
<section class="mobile-buttons lines-bg clearfix row">
<ul class="side-list">
<li><a href="/link1" class="btn blue-bg">The First Menu</a></li>
<li><a href="/link2" class="btn blue-bg">Long Description on Second Menu</a></li>
<li><a href="/link3" class="btn blue-bg">Short 3rd Menu</a></li>
<li><a href="/link4" class="btn blue-bg">Extra description on fourth menu option</a></li>
</ul>
</section>
关于html - 带有 Flexbox 列表项的标签的垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43203041/