Text Input Size vs. Width

The size attribute is mainly presentational, and I avoid it unless it’s really important to set a width for non-CSS browsers like Lynx. The exception is for select elements, where it’s needed to create a list box instead of a drop-down list.

The widths of text fields etc should be specified with the width property in CSS. It has the advantage of letting you specify the width in em, as well.

For textarea elements the rows and cols attributes are required, but I still think the dimensions should be overridden with CSS.