Поскольку width:auto
по умолчанию равно 100% (то есть минус границы и отступы, см. здесь ), если вы не находитесь в с плавающей / позиционной среда. На самом деле, без
float:left
или
position: absolute
вам не повезло, устанавливая ширину элемента на минимум только в CSS. См., Например, здесь о том, как вы можете достичь этого в Firefox (только).
Редактировать: Вы также можете использовать
display: table;
width: auto;
но, с одной стороны, это также не поддерживается во всех браузерах, и тогда дизайн таблицы может принести вам множество других неприятностей.
Редактировать 2: Вы можете, как предложено DisgruntledGoat, также попробовать display:inline-block
. На этой странице представлена кросс-браузерная реализация, ориентированная на IE6 +, FF2 +, Safari 3+ и Opera.