Com forçar el canvi de mida de CSS lliure en l’element d’entrada quan s’especifica el seu ample?

Això és bastant proper a viable. Ha d’establir size="1" com un atribut a <input> per canviar la mida realment petit. El canvi de mida està controlat per input:active que anul·la la classe base amb width: auto;. input:focus evita que es redueixi quan ho tabula per escriure.

Possibles problemes: input:focus obliga a l’<input> a un min-size específic, que pot ser més gran del que s’ha canviat de mida. Pot min-width: 100% fer d’això una “característica” en lloc d’un problema, donant a l’usuari més espai per escriure. Si el <input> té focus, el canvi de mida encara està limitat per min-width, però el canvi de mida generalment es realitza després de l’enfocament ( i també, s’usa principalment per a fer alguna cosa més gran).

Demostració: http://jsfiddle.net/ThinkingStiff/jNnCW/

HTML (amb estils en línia com va sol·licitar) :

<input type="text" size="1"/><style> input { resize: horizontal; width: 200px; } input:active { width: auto; } input:focus { min-width: 200px; }</style> 

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *