我正在尝试按照以下方式创建布局,其中问题的帮助文本在问题容器中垂直对齐。
我的问题是当帮助文本超出问题控件的高度时如何扩展父容器。按照:
我知道这是因为我使用绝对定位来垂直居中帮助文本,因此它不包含在父容器的流中。但是,我不确定这个问题的最佳css解决方案。
position: absolute;
top: 50%;
transform: translateY(-50%);
我创建了以下小提琴来说明我现有的解决方案/问题:
对于这个问题的最佳结构,我将不胜感激。
答案 0 :(得分:4)
好吧,你不能仅使用CSS扩展基于绝对定位div的父容器。
如果您之前的问题是垂直居中,我建议您采用不同的方法。您可以将容器转换为display: table
元素,并将两者作为主要内容,并将工具提示作为display: table-cell
。这样,您就可以以更加可靠的方式将其放置在右侧,垂直对齐将与vertical-align: middle
一起使用。
这将使您的容器适合工具提示。另外,我添加了position:relative; left:20px;
将它放错了一点,就像你的例子中那样......
.cf:before,
.cf:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.cf:after {
clear: both;
}
.container {
position: relative;
border: 1px #000 solid;
display: table;
margin-bottom: 50px;
}
.content, .text {
display: table-cell;
vertical-align: middle;
}
.text {
width: 22.5%;
}
.text > div {
background-color: #ccc;
margin: 5px;
padding: 10px;
position: relative;
left: 20px;
}

<div class="container cf">
<div class="content">
This is the form content
</div>
<div class="text">
<div>Some text that is smaller than the control height</div>
</div>
</div>
<div class="container cf">
<div class="content">
This is the form content
</div>
<div class="text">
<div>Some text that is bigger than the control height, some text that is bigger than the control height, some text that is bigger than the control height.
</div>
</div>
</div>
&#13;