Я хочу сказать, что это идет вразрез с «общепринятым мнением», но я обычно предпочитаю использовать размер. Причиной этого является как раз та причина, по которой многие говорят, что нет: ширина поля будет варьироваться от браузера к браузеру, в зависимости от размера шрифта. В частности, он всегда будет достаточно большим, чтобы отображать указанное количество символов, независимо от настроек браузера.
Например, если у меня есть поле даты, я обычно хочу, чтобы поле было достаточно широким для отображения 8 или 10 символов (двухзначный месяц и день и двух- или четырехзначный год с разделителями). Установка атрибута размера, по сути, гарантирует мне, что вся дата будет видимой, с минимальным потерянным пространством. Аналогично для большинства чисел - я знаю диапазон ожидаемых значений, поэтому я установлю для атрибута размера правильное количество цифр плюс десятичную точку, если применимо.
Насколько я могу судить, ни один атрибут CSS не делает этого. Например, установка ширины в em основана на высоте, а не на ширине, и, следовательно, не очень точна, если вы хотите отобразить известное количество символов.
Конечно, эта логика не всегда применима - например, поле ввода имени может содержать любое количество символов. В этих случаях я вернусь к свойствам ширины CSS, обычно в px. Однако я бы сказал, что большинство полей, которые я делаю, имеют какой-то известный контент, и, указав атрибут размера, я могу убедиться, что большая часть контента в большинстве случаев отображается без отсечения.