为什么第一个内联块锚定在底部?

Why is this first in-line block anchored at the bottom?

我有两个并排的块:#abc#buttons(后者包含内联图像)。

我不明白为什么文字“abcd”会漂浮在黄色的底部div。

问题:为什么默认情况下它不在 #wrapper 的左上角?

旁注:如何将此文本“abcd”设置在黄色的顶部(垂直)或中间(垂直)div?

* { margin: 0; padding: 0; }
#abc, #buttons { display: inline-block; }
#wrapper { background-color: yellow; }
ul li { display: inline; }
<div id="wrapper">
  <div id="abc">
  abcd
  </div>
  <div id="buttons">
    <ul>
      <li><a href="/1"><img src="https://via.placeholder.com/75x75"></a></li>
      <li><a href="/2"><img src="https://via.placeholder.com/75x75"></a></li>
      <li><a href="/3"><img src="https://via.placeholder.com/75x75"></a></li>
      <li><a href="/4"><img src="https://via.placeholder.com/75x75"></a></li>
    </ul>
  </div>
</div>

默认情况下,如果您将属性设置为内联,它将具有 vertical-align 属性作为 baseline 它的默认行为

但是如果你想让它居中对齐或者顶部对齐你可以把它改成middle

查看此代码

* { margin: 0; padding: 0; }
#abc, #buttons { display: inline-block; vertical-align: middle; }
#wrapper { background-color: yellow; }
ul li { display: inline; }
<div id="wrapper">
  <div id="abc">
  abcd
  </div>
  <div id="buttons">
    <ul>
      <li><a href="/1"><img src="https://via.placeholder.com/50x50"></a></li>
      <li><a href="/2"><img src="https://via.placeholder.com/50x50"></a></li>
      <li><a href="/3"><img src="https://via.placeholder.com/50x50"></a></li>
      <li><a href="/4"><img src="https://via.placeholder.com/50x50"></a></li>
    </ul>
  </div>
</div>

您可以查看css trick了解更多详情

它一定与 display: inlinedisplay: inline-block 使元素的行为方式有关。我尽量避免 display: inline (这是所有元素的默认行为,不需要指定)。同时,我猜 display: inline-block 将元素缩小到尽可能小并将其向下推?我没有技术答案,但我有 a solution on codepen.

此解决方案使用 flexbox,css 内的天赐之物。