css - 垂直对齐 :middle a div inside a floating div?

标签 css vertical-alignment

为什么第三列中的黑色条纹没有在父 div 的中间垂直对齐?而是在顶部下方对齐一点。有办法解决吗?

https://jsfiddle.net/pr1v6Lhd/4/

HTML:

<table border="1">
  <tbody>
    <tr>
      <td>ADMIN<br>:(</td>
      <td>222387</td>
      <td width='50' style='position:relative'>
        <div class='data'>59853.94</div>
        <div class="bar-chart-bar">
          <div class="bar" style='width:50%; background-color:#B8E4F5'>
          <div style="height:10px; background-color:black; width:100%;vertical-align:middle; display: inline-block"></div>            
          </div>
        </div>
      </td>
      <td width="50">0</td>
      <td>59853.94</td>
      <td>4189.82</td>
      <td>7</td>
    </tr>
  </tbody>
</table>

CSS:

.bar-chart-bar {
  background-color: #e8e8e8;
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -1;
}

.bar {
  float: left;
  height: 100%;
}

.data {

}

.table > tbody > tr > td {
  vertical-align: middle;
}

table {
  font-size: 12px;
}

最佳答案

在你的 .bar 类中,你可以添加

display:flex;
flex-direction:column;
justify-content:center;

以及删除

vertical-align: middle;
display: inline-block;

来自您的 .data 类。 Here是结果。这对您不起作用的原因是 vertical-align 并不真正按照您想要的方式运行,除非您的元素位于表格单元格中。参见 this有关垂直对齐的更多信息。

关于css - 垂直对齐 :middle a div inside a floating div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40515501/

相关文章:

html - 删除无序列表上方的跳过行

html - z-index 在固定元素上无法正常工作

html - 粘性侧边栏在 Firefox 中没有正确的顶部空间

css - Flexbox - 第二行垂直居中

css 位置 :absolute, bottom:0 with parent overflow:auto

css - 调整页面垂直居中内容

javascript - 在我的窗口屏幕外停止动画

javascript - 根据文本换行和窗口宽度更改 CSS 类(Jquery 或 JavaScript)

css - 试图垂直对齐容器 div 中的两个 float div

html - 将 div/span 对齐到表格单元格的左上角