vertical-align:middle a div inside a floating div?
vertical-align:middle a div inside a floating div?
为什么第三列中的黑色条纹没有在父级中间垂直对齐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;
}
在这种情况下,vertical-align
for inline-block
元素与其他元素相关而不是与容器本身相关,您可以添加这样的参考元素:
.bar:before {
content:"";
display:inline-block;
height:100%;
margin-right:-4px;
vertical-align:middle;
}
Updated Fiddle
您的 .bar
class,您可以添加
display:flex;
flex-direction:column;
justify-content:center;
以及删除
vertical-align: middle;
display: inline-block;
来自你的 .data
class。 Here is the result. The reason this wasn't working for you is that vertical-align
doesn't really behave the way you want it to unless your element is in a table cell. See this 了解有关垂直对齐的更多信息。
为什么第三列中的黑色条纹没有在父级中间垂直对齐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;
}
在这种情况下,vertical-align
for inline-block
元素与其他元素相关而不是与容器本身相关,您可以添加这样的参考元素:
.bar:before {
content:"";
display:inline-block;
height:100%;
margin-right:-4px;
vertical-align:middle;
}
Updated Fiddle
您的 .bar
class,您可以添加
display:flex;
flex-direction:column;
justify-content:center;
以及删除
vertical-align: middle;
display: inline-block;
来自你的 .data
class。 Here is the result. The reason this wasn't working for you is that vertical-align
doesn't really behave the way you want it to unless your element is in a table cell. See this 了解有关垂直对齐的更多信息。