内联/内联块元素的CSS垂直对齐

Yar*_*rin 136 html css vertical-alignment

我试图将几个inlineinline-block组件垂直对齐div.为什么span这个例子坚持要被推倒?我都试过vertical-align:middle;vertical-align:top;,但没有任何变化.

HTML:

<div>
  <a></a><a></a>
  <span>Some text</span>
</div>?
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

结果:
在此输入图像描述

小提琴

Die*_*ego 260

vertical-align适用于要对齐的元素,而不是它们的父元素.要垂直对齐div的子节点,请执行以下操作:

div > * {
    vertical-align:middle;  // Align children to middle of line
}
Run Code Online (Sandbox Code Playgroud)

请参阅:http://jsfiddle.net/dfmx123/TFPx8/1186/

注意:vertical-align相对于当前文本行,而不是父项的完整高度div.如果您希望父级div更高并且仍然将元素垂直居中,请设置div's line-height属性而不是它的属性height.按照上面的jsfiddle链接获取示例.

  • @AbhranilDas`vertical-align`是相对于当前文本行,而不是父元素.要使其工作正常,请设置div的"line-height"而不是"height". (4认同)

san*_*eep 23

vertical-align:top;aspan.像这样:

a, span{
 vertical-align:top;
}
Run Code Online (Sandbox Code Playgroud)

检查这个http://jsfiddle.net/TFPx8/10/


小智 5

只需将两个元素都悬空即可获得相同的结果。

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;
}
Run Code Online (Sandbox Code Playgroud)


ksl*_*stn 5

要微调inline-block项目的位置,请使用 top 和 left:

  position: relative;
  top: 5px;
  left: 5px;
Run Code Online (Sandbox Code Playgroud)

感谢CSS 技巧