I have this fairly simple form:
<form action="...">
<div>
<input type="text" class="input-text" value="" name="text" />
<input type="submit" class="submit" value="Submit" />
</div>
</form>
The form is sitting inside a fixed-width div (specified in ems).
I want the textfield and button to be a single row, but the textfield width is inconsistent across browsers even when I specify its size
attribute. Not wanting to specify exact widths (especially for the button) I was wondering if it was possible to give the textfield a liquid width? I want the textfield to stretch so that both it and the button can fit on a single line.
Yeah length
is for character count, not width.
You want the text box to fill all available space short of what the button takes up? This is doable with a table (but I consistently get booed on Stack Overflow for suggesting tables). Let's say for the sake of argument you use DIVs with display:table, but just for simplicity I'll illustrate with actual table markup.
<table cellpadding=0 cellspacing=0 width=100%>
<tr>
<td><input type="text" style="width:100%"></td>
<td style="width:0"><input type="submit"></td>
</tr>
</table>
The width 0 on the button cell might seem odd, but table cells take their widths only as suggestions. It'll stretch to fit the content no matter how skinny you make it.