Como forçar a alteração de tamanho CSS grátis no elemento de entrada quando sua largura é especificada?

Isso é bastante próximo de viável. Você deve definir size="1" como um atributo no <input> para alterar o tamanho realmente pequeno. A mudança de tamanho é controlada por input:active que cancela a classe base com width: auto;. input:focus Prevê-lo de ser reduzido quando você a tabela.

Possíveis problemas: input:focus Força a <input> para um min-size específico, o que pode ser maior do que foi alterado. Você pode min-width: 100% Faça desta “característica” em vez de um problema, dando ao usuário mais espaço para escrever. Se o <input> O tamanho da alteração ainda é limitado por , mas a alteração do tamanho é geralmente executada após o foco (e também, É usado principalmente para fazer algo maior).

demonstração: http://jsfiddle.net/ThinkingStiff/jNnCW/

html (com estilos online conforme solicitado):

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

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *