Подтвердить что ты не робот

Развернуть вход, чтобы взять оставшуюся ширину

Этот вопрос является расширением Разверните div, чтобы взять оставшуюся ширину.

Верхнее решение отлично подходит для того, чтобы div занимал оставшуюся ширину, но один я помещаю вход в левый div, который он ломает. Я ожидаю, что вход будет расширяться, чтобы заполнить оставшуюся ширину div, но вместо этого он выпрыгивает из div и помещается в нижнюю часть.

Обратите внимание, что красный квадрат правильно заполняет ширину, в то время как синий ящик фиксирован. Мне нужно поле ввода, чтобы делать то же самое, что и красное поле: заполните оставшуюся ширину.

http://jsfiddle.net/fct87qpn/

<div class="container">
    <div class="right"></div>
    <div class="left">
        <input type="text" class="text"/>
    </div>
</div>
4b9b3361

Ответ 1

Решение уже находится в вашей предоставленной ссылке:

.left {
    overflow: hidden;
}

JSFiddle

Другим решением будет добавление поля:

.left {
    margin-right: 200px;
}

Первый из них более гибкий.

Ответ 2

.container {
    position:relative;
    width:100%;
    height:200px;
    border:1px solid;
}
.right {
    height:200px;
    width:200px;
    background:green;
    float:right;
}
.left {
    width:-webkit-calc(100% - 200px);
    height:178px;
    background:red;
}
.text{
    position:relative;
    width:100%;
    height:20px;
    margin:0;
    border:0;
    top:178px;
}
<div class="container">
    <div class="right"></div>
    <div class="left">
        <input type="text" class="text"/>
    </div>
</div>