Таблица CSS - расширить поле ввода на всю длину без переноса на новую строку

У меня есть форма с элементами, структурированными так:

<div>
   <label>Name</label>
   <input type="text" name="name" />
</div>

<div>
   <label>Address</label>
   <input type="text" name="address" />
</div>

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

Если я попытаюсь установить ширину на 100%, поля ввода будут перенесены на новую строку, чтобы расширить всю ширину.

Как я могу заставить метки (ширина которых является переменной) располагаться слева от полей ввода и расширять эти поля ввода, чтобы они соответствовали содержащему их div?

Вот мой текущий CSS:

#content form input
{
   border: none;
   height: 23px;
   position: relative;
   top: -1px;
   left: -5px;
   padding-top: 5px;
   text-indent: 10px;
   display: inline-block;
}  

#content form label
{
   background: #c6c9c0 url('../images/form-label-bg.jpg') no-repeat center right;
   height: 28px;
   line-height: 30px;
   display: inline-block;
   text-indent: 15px;
   padding-right: 25px;
   color: #6a6a6a;
   text-transform: uppercase;
   font-weight: bold;
   font-size: 8pt;
}

person dave    schedule 17.12.2009    source источник


Ответы (2)


попробуй это:

form div {
    display: table;
    width: 100%;
}
label,
input { 
    display: table-cell;
}
label{ 
    width: 200px;
}
input {
    width: 100%;
}
person antpaw    schedule 17.12.2009

Я не думаю, что это возможно даже с использованием таблиц, потому что все «столбцы» в таблице также будут иметь одинаковую ширину.

Я полагаю, вам нужно вручную определить ширину для входов. Однако используйте % вместо px.

person eozzy    schedule 17.12.2009