html - 内联/内联 block 元素的 CSS 垂直对齐

标签 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>​

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;
}

结果:
enter image description here

FIDDLE

最佳答案

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

div > * {
    vertical-align:middle;  // Align children to middle of line
}

参见:http://jsfiddle.net/dfmx123/TFPx8/1186/

注意:vertical-align 是相对于当前文本行的,而不是父级div 的全高。如果您希望父级 div 更高并且仍然让元素垂直居中,请设置 divline-height 属性而不是它的高度。按照上面的 jsfiddle 链接查看示例。

关于html - 内联/内联 block 元素的 CSS 垂直对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34729754/

相关文章:

javascript - slideToggle 以前显示的元素没有 next()

javascript - 使用JS更改点击框的颜色

css - 在同一网页中重复使用 SVG 代码,而无需重写整个代码

html - CSS:如何垂直对齐对象,以便增加标签的字体大小不会丢失所有内容?

javascript - 如何添加直到稍后才被解析的 HTML 元素?

javascript - 如何使我的 JQuery 图像 slider 与屏幕宽度相同?

jquery - 如何让图片一个接一个滚动

php - 如何仅显示 php/mysql 表中最后插入行 ID 的编辑按钮

html - 如何在中间对齐文本和图像

html - 如何将填充或边距应用于显示为表格单元格的标题?