Единственный способ, которым я знаю, как добиться этого или подобного, - это иметь «текстовое поле» в качестве элемента блока, который автоматически заполнит всю ширину родительского элемента, а затем применить отступ слева и справа, равный общая ширина контейнеров слева и справа. Затем сделайте так, чтобы элементы «label» и «button» имели положение, установленное как относительно , и поместите их туда, где они должны быть (float: left, float: right).
Что-то вроде,
HTML:
<div id="parent">
<div id="label">label</div>
<div id="button">button</div>
<div id="text-box">
text<br />
text<br />
text<br />
text<br />
text
</div>
</div>
CSS:
div#label
{
position: relative;
float: left;
width: 200px;
background: #F00;
}
div#button
{
position: relative;
float: right;
width: 120px;
background: #0F0;
}
div#text-box
{
padding-left: 200px;
padding-right: 120px;
background: #00F;
}
Если элементам кнопки и метки не нужно иметь заданную ширину, все элементы могут просто иметь свою ширину в виде процентного значения (все добавляются до 100%).