Вы можете создавать простые плавающие формы, не теряя своего жидкого макета. Например:
<style type="text/css">
.row { clear: left; padding: 6px; }
.row label { float: left; width: 10em; }
.row .field { display: block; margin-left: 10em; }
.row .field input, .row .field select {
width: 100%;
box-sizing: border-box;
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; -khtml-box-sizing: border-box;
}
</style>
<div class="row">
<label for="f-firstname">First name</label>
<span class="field"><input name="firstname" id="f-firstname" value="Bob" /></span>
</div>
<div class="row">
<label for="f-state">State</label>
<span class="field"><select name="state" id="f-state">
<option value="NY">NY</option>
</select></span>
</div>
Это имеет тенденцию ломаться, хотя, когда у вас есть сложные макеты форм, где есть сетка из нескольких столбцов фиксированной и гибкой ширины. В этот момент вы должны решить, придерживаться ли div'ов и отказаться от жидкой компоновки, а просто поместить все в фиксированные позиции пикселей или позволить таблицам сделать это.
Лично для меня жидкостная разметка является более важной особенностью удобства использования, чем точные элементы, используемые для разметки формы, поэтому я обычно хожу за таблицами.