Como posso adicionar um glifo a uma caixa de entrada de tipo de texto? Por exemplo, eu quero ter 'icon-user' em uma entrada de nome de usuário, algo como isto:
css
twitter-bootstrap
glyphicons
doovers
fonte
fonte
Respostas:
Sem o Bootstrap:
Vamos chegar ao Bootstrap em um segundo, mas aqui estão os conceitos fundamentais de CSS em jogo para fazer isso você mesmo. Como barba de presa aponta , você pode fazer isso com CSS posicionando absolutamente o ícone dentro do elemento de entrada. Em seguida, adicione preenchimento a ambos os lados para que o texto não se sobreponha ao ícone.
Portanto, para o seguinte HTML:
Você pode usar o seguinte CSS para alinhar os glifos esquerdo e direito:
Demonstração em Plunker
Com o Bootstrap:
Como o buffer aponta , isso pode ser realizado de forma nativa no Bootstrap usando Estados de Validação com Ícones Opcionais . Isso é feito fornecendo ao
.form-group
elemento a classe de.has-feedback
e o ícone a classe de.form-control-feedback
.O exemplo mais simples seria algo como isto:
Prós :
Contras :
Para superar os contras, montei essa solicitação de puxar com alterações para dar suporte aos ícones alinhados à esquerda. Por se tratar de uma mudança relativamente grande, ela foi adiada para uma versão futura, mas se você precisar desses recursos hoje , aqui está um guia de implementação simples:
Apenas inclua as alterações no formulário em css (também destacadas por meio do snippet de pilha oculto na parte inferior)
* MENOS : alternativamente, se você estiver construindo por menos , aqui está o formulário muda em menos
Então, tudo o que você precisa fazer é incluir a classe
.has-feedback-left
em qualquer grupo que tenha a classe.has-feedback
para alinhar à esquerda o ícone.Como existem muitas configurações possíveis de html em diferentes tipos de formulários, diferentes tamanhos de controle, diferentes conjuntos de ícones e diferentes visibilidades de rótulo, criei uma página de teste que mostra o conjunto correto de HTML para cada permutação, juntamente com uma demonstração ao vivo.
Aqui está uma demonstração no Plunker
Não encontrou o que estava procurando ? Tente estas perguntas semelhantes:
CSS adicional para ícones de feedback alinhados à esquerda
Mostrar snippet de código
fonte
.focusedInput
classe é definida depois.input-group-addon
disso, quando as folhas de estilo são exibidas em cascata , os últimos estilos devem ter precedência. Você pode descrever melhor o cenário que levou a esse problema?<i class="icon-user"></i>
para<i class="fa fa-user"></i>
. Sempre que você estiver pensando em atualizar bibliotecas externas, leia as notas de versão e a nova documentação para determinar se seu aplicativo ainda é compatível ou precisa ser atualizado.O método oficial . Não é necessário CSS personalizado:
DEMO: http://jsfiddle.net/LS2Ek/1/
Esta demonstração é baseada em um exemplo nos documentos do Bootstrap. Role para baixo até "Com ícones opcionais" aqui http://getbootstrap.com/css/#forms-control-validation
fonte
{left:0}
à classe glyphicon deve cuidar do alinhamento à esquerda. jsfiddle.net/LS2Ek/30 . Mas eu gosto da sua abordagem de contorno + sombra de caixa. Parece arrumado!left:0
não identifica mais o início da entrada. Você também precisará adicionar preenchimento à esquerda da entrada e removê-lo à direita. Ainda assim, uma solução muito agradável e limpa. Eu acho que identificar a esquerda da entrada é a parte mais difícil, e é aí que um invólucroposition:relative
é útil.Aqui está uma alternativa apenas para CSS. Configurei isso para um campo de pesquisa para obter um efeito semelhante ao Firefox (e centenas de outros aplicativos.)
Aqui está um violino .
HTML
CSS
fonte
Aqui está como eu fiz isso usando apenas o CSS de inicialização padrão v3.3.1:
E é assim que parece:
fonte
Esse 'truque' funcionará com o efeito colateral de que a classe glyphicon alterará a fonte do controle de entrada.
Violino
Se você quiser se livrar do efeito colateral, remova a classe "glyphicon" e adicione o seguinte CSS (pode haver uma maneira melhor de estilizar o pseudo elemento do espaço reservado e testei apenas no Chrome).
Violino
Possivelmente uma solução ainda mais limpa:
Violino
CSS
HTML
fonte
Isso pode ser feito usando classes da versão oficial do bootstrap 3.x, sem nenhum css personalizado.
Use
input-group-addon
antes da tag de entrada e, eminput-group
seguida, use qualquer um dos glyphicons. Aqui está o códigoAqui está a saída
Para personalizá-lo, adicione ainda algumas linhas de css personalizadas ao seu próprio arquivo custom.css (ajuste o preenchimento, se necessário)
Ao tornar o plano de fundo
input-group-addon
transparente e fazer com que o gradiente esquerdo da tag de entrada seja zerado, a entrada terá uma aparência uniforme. Aqui está a saída personalizadaAqui está um jsbin exemplo de
Isso resolverá os problemas css personalizados de sobreposição com etiquetas, alinhamento durante o uso
input-lg
e foco na questão da guia.fonte
Aqui está uma solução que não é de autoinicialização que simplifica sua marcação incorporando a representação da imagem do glifo diretamente no CSS usando a codificação URI base64.
fonte
Se você estiver usando o Fontawesome, pode fazer o seguinte:
Resultado
A lista completa de unicode pode ser encontrada na referência completa do ícone The Font Awesome 4.6.3
fonte
fonte
Aqui está outra maneira de fazer isso, colocando o glyphicon usando o
:before
pseudo elemento no CSS.Demonstração de trabalho no jsFiddle
Para este HTML:
Use este CSS ( compatível com Bootstrap 3.xe navegadores baseados em Webkit )
Como o @Frizi disse, temos que adicionar
pointer-events: none;
para que o cursor não interfira no foco de entrada. Todas as outras regras CSS são para centralizar e adicionar o espaçamento adequado.O resultado:
fonte
Você pode usar seu HTML Unicode
Para adicionar um ícone de usuário, basta adicionar

aoplaceholder
atributo ou onde você quiser.Você pode verificar esta folha de dicas .
Exemplo:
fonte
Eu também tenho uma decisão para este caso com o Bootstrap 3.3.5:
Na entrada, tenho algo parecido com isto:
fonte
Testado com o Bootstrap 4.
Pegue um
form-control
e adicioneis-valid
à sua classe. Observe como o controle fica verde, mas mais importante, observe o ícone de marca de seleção à direita do controle? Isto é o que queremos!Exemplo:
fonte
Se você tiver a sorte de precisar apenas de navegadores modernos: tente css transform translate. Isso não requer invólucros e pode ser personalizado para permitir mais espaçamento para a entrada [type = number] para acomodar o controle giratório de entrada ou movê-lo para a esquerda da alça.
http://codepen.io/anon/pen/RPRmNq?editors=110
fonte
Você deve conseguir fazer isso com as classes de inicialização existentes e com um pouco de estilo personalizado.
Editar O ícone é referenciado através da
icon-user
classe. Esta resposta foi escrita no momento da versão 2. do Bootstrap. Você pode ver a referência na página a seguir: http://getbootstrap.com/2.3.2/base-css.html#imagesfonte