[英]Middle vertically align inline-block div
我彼此相邻有2个inline-block
div。 左边的一个高度可变,右边的一个按钮里面。
我希望右div始终与左div垂直居中。
外观如下: https : //jsfiddle.net/6xm23fv6/1/
有人知道是否有可能使它们保持inline-block
并仍然使一个div相对于另一个div垂直居中吗?
#container { width: 500px; height: 300px; border: 1px solid grey; } .inlineDiv { display: inline-block; } #inlineDiv1 { border: 1px solid blue; } #inlineDiv2 { border: 1px solid red; }
<div id="container"> <div id="inlineDiv1" class="inlineDiv"> <table> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> </table> </div> <div id="inlineDiv2" class="inlineDiv"> <button>Hi</button> </div> </div>
vertical-align
应该工作:
#inlineDiv1 {
border: 1px solid red;
vertical-align: middle;
}
小提琴: https : //jsfiddle.net/6xm23fv6/2/
编辑:
对于此后的内联块,我认为我们唯一要“重置”垂直对齐方式的是将前两个包装在也设置为display: inline-block
用新的vertical-align: top
display: inline-block
vertical-align: top
尝试:{vertical-align:middle;}
是的,在两个元素周围添加一个容器,使其display:flex;
。 检查代码段。
#container { width: 500px; height: 300px; border: 1px solid grey; } .inlineDiv { display: inline-block; } #inlineDiv1 { border: 1px solid blue; } #inlineDiv2 { border: 1px solid red; } .ctn { display:flex; align-items:center; flex-wrap: nowrap; }
<div id="container"> <div class="ctn"> <div id="inlineDiv1" class="inlineDiv"> <table> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> <tr> <td>Hi there</td> </tr> </table> </div> <div id="inlineDiv2" class="inlineDiv"> <button>Hi</button> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.