我正在尝试在inline
中垂直对齐多个inline-block
和div
个组件。为什么这个例子中的span
坚持要被推倒?我已经尝试了vertical-align:middle;
和vertical-align:top;
,但没有任何变化。
HTML:
<div>
<a></a><a></a>
<span>Some text</span>
</div>
CSS:
a {
background-color:#FFF;
width:20px;
height:20px;
display:inline-block;
border:solid black 1px;
}
div {
background:yellow;
vertical-align:middle;
}
span {
background:red;
}
的结果:
答案 0 :(得分:252)
vertical-align
适用于要对齐的元素,而不是它们的父元素。要垂直对齐div的子项,请改为:
div > * {
vertical-align:middle; // Align children to middle of line
}
请参阅:http://jsfiddle.net/dfmx123/TFPx8/1186/
注意:vertical-align
相对于当前文本行,而不是父div
的完整高度。如果您希望父div
更高并且仍然将元素垂直居中,请设置div
的{{1}}属性而不是line-height
。请按照上面的 jsfiddle 链接获取示例。
答案 1 :(得分:23)
在vertical-align:top;
&amp;中提供a
span
。像这样:
a, span{
vertical-align:top;
}
答案 2 :(得分:4)
简单地向左移动两个元素可以获得相同的结果。
div {
background:yellow;
vertical-align:middle;
margin:10px;
}
a {
background-color:#FFF;
width:20px;
height:20px;
display:inline-block;
border:solid black 1px;
float:left;
}
span {
background:red;
display:inline-block;
float:left;
}
答案 3 :(得分:1)