Estou tentando inserir um ícone de usuário dentro do campo de entrada de nome de usuário.
Eu tentei uma das soluções a partir de uma pergunta semelhante,
sabendo que a background-image
propriedade não funcionará, pois Font Awesome é uma fonte.
A seguir, é minha abordagem e não consigo exibir o ícone.
.wrapper input[type="text"] {
position: relative;
}
.wrapper input[type="text"]:before {
font-family: 'FontAwesome';
position: absolute;
top: 0px;
left: -5px;
content: "\f007";
}
Eu tenho o rosto da fonte declarado na fonte padrão awesome css, então não tinha certeza se a adição da família de fontes acima era a abordagem correta.
@font-face {
font-family: 'FontAwesome';
src: url('../Font/fontawesome-webfont.eot?v=3.2.1');
src: url('../Font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../Font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../Font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../Font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
}
html
css
fonts
font-awesome
Seong Lee
fonte
fonte
Respostas:
Você está certo. : before e: after o pseudo conteúdo não se destina a trabalhar com elementos
img
einput
elementos substituídos . Adicionar um elemento de quebra automática e declarar uma família de fontes é uma das possibilidades, assim como usar uma imagem de plano de fundo. Ou talvez um texto de espaço reservado html5 atenda às suas necessidades:Os navegadores que não suportam o atributo placeholder simplesmente o ignoram.
ATUALIZAR
O seletor de conteúdo antes de seleciona a entrada:
input[type="text"]:before
. Você deve selecionar o wrapper:.wrapper:before
. Veja http://jsfiddle.net/allcaps/gA4rx/ . Também adicionei a sugestão de espaço reservado onde o wrapper é redundante.Cair pra trás
O Font Awesome usa a Área de uso privado Unicode (PUA) para armazenar ícones. Outros caracteres não estão presentes e retornam ao padrão do navegador. Isso deve ser o mesmo que qualquer outra entrada. Se você definir uma fonte nos elementos de entrada, forneça a mesma fonte como substituto para situações em que usamos um ícone. Como isso:
fonte
input { font-family: 'FontAwesome' YourFont; }
. Isso ajuda? Você sempre pode fazer uma nova pergunta.Resultado:
HTML:
CSS:
(Ou)
Resultado:
HTML:
CSS:
fonte
z-index: 1
fará a entrada subjacente capturar o foco quando você clicar no ícone - algo que você pode querer, por exemplo, ao adicionar um datepicker.position: relative
(margens negativas não precisa dele), nemz-index
(assim que o elemento é processado após a entrada)Você poderia usar um invólucro. Dentro do wrapper, adicione o elemento awesome da fonte
i
e oinput
elementodefina a posição do wrapper para relativa:
e defina a
i
posição do elemento como absoluta e defina o local correto para ele:(É um truque, eu sei, mas faz o trabalho.)
fonte
Esta resposta funcionará para você se você precisar das seguintes condições atendidas (nenhuma das respostas atuais atendeu a essas condições):
Acredito que 3 é o número mínimo de elementos HTML para satisfazer essas condições:
fonte
Não é necessário codificar muito ... basta seguir os seguintes passos:
você pode encontrar os links para o Unicode ( fontawesome ) aqui ...
FontAwesome para ícones
fonte
fonte
Depois de ler várias versões desta pergunta e pesquisar, eu encontrei uma solução bastante limpa e sem js. É semelhante à solução @allcaps, mas evita que o problema da fonte de entrada seja alterado da fonte principal do documento.
Use o
::input-placeholder
atributo para estilizar especificamente o texto do espaço reservado. Isso permite que você use a fonte do ícone como fonte do espaço reservado e seu corpo (ou outra fonte) como o texto de entrada real. Atualmente, você precisa especificar seletores específicos do fornecedor.Isso funciona bem desde que você não precise de uma combinação de ícone e texto em seu elemento de entrada. Se o fizer, será necessário que o texto do espaço reservado seja a fonte padrão do navegador (serifa simples na minha) para as palavras.
Por exemplo,
HTML
CSS
Brinque com os seletores com prefixo do navegador: http://jsfiddle.net/gA4rx/78/
Observe que você precisa definir cada seletor específico do navegador como uma regra separada. Se você combiná-los, o navegador ignorará.
fonte
font-family
esse seletor no momento. Só podemos esperar uma aceitação mais ampla no futuro.Eu encontrei a maneira mais fácil usando o bootstrap 4.
fonte
Eu consegui isso assim
O resultado fica assim:
Nota
Observe que estou usando o Ruby on Rails, então meu código resultante parece um pouco explodido. O código de exibição no slim é realmente muito conciso:
fonte
Para mim, uma maneira fácil de ter um ícone "dentro" de uma entrada de texto sem ter que tentar usar pseudoelementos com a fonte unicode incrível etc, é ter a entrada de texto e o ícone dentro de um elemento wrapper que posicionaremos em relação, e, em seguida, posicione a entrada de pesquisa e o ícone impressionante de fonte absoluto.
Da mesma forma que fazemos com imagens de fundo e texto, faríamos aqui. Eu também acho que isso é bom para iniciantes, pois o posicionamento de CSS é algo que um iniciante deve aprender no início de sua jornada de codificação, para que o código seja fácil de entender e reutilizar.
fonte
Aproveitando a sugestão allcaps. Aqui está o método de plano de fundo incrível para fontes com a menor quantidade de HTML:
fonte
Torne o ícone clicável para focar dentro do elemento de entrada de texto.
CSS
HTML
Basta adicionar o ícone que você quiser dentro da
<i>
tag, na biblioteca Font Awesome e aproveitar os resultados.fonte
fonte
puramente CSS
fonte
Minha solução foi ter um contêiner relativo ao redor
input
para segurar o ícone. Esse contêiner externo possui um::after
ícone com o desejado, posicionadoabsolute
dentro do contêiner.HTML:
Código SASS:
fonte
Minha solução para adicionar um ícone incrível de fonte dentro do elemento de entrada. Aqui está um código simples para adicionar ícone dentro do elemento de entrada. Basta copiar o código abaixo e colocar onde deseja adicionar. ou se você quiser alterar o ícone, basta inserir o código do ícone na
<i>
tag.fonte
Em algum momento, o ícone não será exibido devido à versão do Font Awesome. Para a versão 5, o css deve ser
fonte
Maneira fácil, mas você precisa de bootstrap
fonte
fonte
Eu tentei o material abaixo e ele realmente funciona bem em HTML
fonte
Para trabalhar isso com unicode ou fontawesome, você deve adicionar um
span
comclass
como abaixo:Em HTML:
Em CSS:
fonte
fonte