如何在div中垂直对齐两个或多个(并排)元素?

tar*_*riq 11 html css vertical-alignment

我试图在div中垂直对齐两个不同高度的元素:

<div class="footer-icons">
    <div id="footer-twitter">
         <img src="images/twitter.png" width="40" alt="">    
    </div>
    <div id="footer-fb">
         <div class="fb-like" data-href="http://facebook.com/user" data-send="false" data-layout="button_count" data-width="160" data-show-faces="false" data-font="arial"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

twitter div的高度为40px,fb div的高度为20px.目前发生的是fb div垂直居中于twitter图像的下边缘.这是CSS:

.footer-icons {
    padding-top:40px;
    width:300px;
    margin:auto;
    text-align:center;
    vertical-align:middle;
}

#footer-twitter {
    display:inline-block;
}

#footer-fb {
    display:inline-block;
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

For*_*Two 23

将垂直对齐放在内部div上

#footer-twitter{
  display:inline-block;
  vertical-align:middle;
}

#footer-fb{
  display:inline-block;
  vertical-align:middle;
}
Run Code Online (Sandbox Code Playgroud)


Cum*_*bus 9

display: flex是一个非常酷的工具,可以放在您的工具带中。这里有一些有用的文档可以帮助您开始使用它。

特别是在您的情况下,这些属性将很有用:

align-items:center - 这将垂直对齐所有子元素的中心

justify-content:center - 这将在父容器内水平居中子元素(不确定你是否想要这个,但也可能有帮助)

.footer-icons {
    border: 1px solid #000;
    padding-top:40px;
    width:300px;
    margin: auto;
    
    display:flex;
    align-items:center;
    justify-content:center;
}
Run Code Online (Sandbox Code Playgroud)
<div class="footer-icons">
    <div id="footer-twitter">
        Center me  
    </div>
    <div id="footer-fb">
         <img src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Facebook_logo_%28square%29.png" width="40" alt="">   
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)