【发布时间】:2016-02-28 23:42:23
【问题描述】:
现在对我来说这里的挑战是垂直居中对齐第一列和第三列中的文本,而中间列中的文本可以合理增加或减少,但我必须保持左右列中的内容始终垂直居中对齐。
例如这里是代码
<div class="product">
<div class="title">My Test Title</div>
<div class="price">
From<br/>
$2500
</div>
<div class="description">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et blanditiis, quibusdam commodi beatae, dolorum reiciendis, ex veniam esse recusandae iusto sapiente labore quisquam illo deserunt odio non magni velit! Sed.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Et blanditiis, quibusdam commodi beatae, dolorum reiciendis, ex veniam esse recusandae iusto sapiente labore quisquam illo deserunt odio non magni velit! Sed.</p>
</div>
</div>
// AND THE CSS is
.product {
border: 1px solid #CCC;
}
.product > div {
padding : 10px;
border: 1px solid #CCC;
}
.title
{
width : 120px;
float:left;
}
.price {
width:120px;
float:right;
text-align:right;
}
.description {
overflow:hidden;
}
这里是小提琴:https://jsfiddle.net/exleedo/rexwya5e/
有没有办法做到这一点而不使用display:table-cell; 或使用 javscript 来查找父级的高度?
使用table-cell的原因是因为table-cell不会再从css中取宽度,而使用JS计算父级的高度我觉得不是很好。
【问题讨论】:
-
@Paulie_D 对不起,保利,我的错。我现在添加了一个简单的小提琴。我已经有了使用 display:table-cell; 的解决方案并使用js计算父级的高度,但它对更简单的解决方案的好奇心让我问这个问题。
-
答案基本上..是否。 CSS 无法对齐不同容器中的元素。
-
Flexbox 可以使容器等高,它甚至可以使内容居中,但它仍然不能对齐容器之间的东西。
-
感谢@Paulie_D,我想我会选择表格单元格选项。我又想了想,我遇到了 display:table-cell 的宽度问题,但是我可以将宽度分配给 table-cell div 内的 div。我想那是完美的。我将在答案中添加小提琴。