如何使这个元素垂直居中?

How to center this element vertically?

.inputSet {
  display: inline-block;
}

input {
  display: block;
}
<div>
  <span>δ:</span>
  <div class="inputSet">
    <input type="number">
    <input type="range">
  </div>
</div>

大家可以看到,这个δ在最下面,看起来很难看。相反,δ 应该垂直居中。 (向上移动了一点)。

我已阅读本指南:https://css-tricks.com/centering-css-complete-guide/,但找不到解决方案。 δ 显然是一个 inline-* 元素,但所有将此类元素居中的方法都需要知道封闭 div:

的高度
  1. 我做不到span {padding-top: 30px; padding-bottom: 30px;}因为我不知道封闭的渲染高度div
  2. 出于同样的原因,我不能span {height: 100px; line-height: 100px; white-space: nowrap;}

有什么办法吗?

您可以将 vertical-align: middle 用于 .inputSet

.inputSet {
  display: inline-block;
  vertical-align: middle
}

input {
  display: block;
}
<div>
  <span>δ:</span>
  <div class="inputSet">
    <input type="number">
    <input type="range">
  </div>
</div>

因此,当谈到垂直对齐任何东西时,我是 Flexbox 的忠实粉丝,我添加了一些边距并重新组织了一些 HTML 以使其工作并使其看起来更好一点.我还添加了一个 .Container class 这样你就可以看到它是如何工作的,查看更多信息:Flexbox

.Container {
  display: flex;
  margin: 24px 0;
  flex-flow: column;
  justify-content: center;
  align-items: center;
}

.icon {
  margin-right: 6px;
}

.inputSet {
  margin: 12px 0;
  display: flex;
  flex-flow: row;
  align-items: center;
}
<div class="Container">
  <input type="number">
  <div class="inputSet">
    <span class="icon">δ:</span>
    <input type="range">
  </div>
</div>