Quero usar um ícone de Fonte impressionante como conteúdo CSS, ou seja,
a:before {
content: "<i class='fa...'>...</i>";
}
Sei que não posso usar o código HTML content
, então só restam imagens?
Quero usar um ícone de Fonte impressionante como conteúdo CSS, ou seja,
a:before {
content: "<i class='fa...'>...</i>";
}
Sei que não posso usar o código HTML content
, então só restam imagens?
Respostas:
Atualização para FontAwesome 5 Graças a Aurelien
Você precisa alterar font-family
para Font Awesome 5 Brands
OR Font Awesome 5 Free
, com base no tipo de ícone que você está tentando renderizar. Além disso, não se esqueça de declararfont-weight: 900;
a:before {
font-family: "Font Awesome 5 Free";
content: "\f095";
display: inline-block;
padding-right: 3px;
vertical-align: middle;
font-weight: 900;
}
Você pode ler o restante da resposta abaixo para entender como funciona e conhecer algumas soluções alternativas para o espaçamento entre o ícone e o texto.
Impressionante 4 e abaixo
Essa é a maneira errada de usá-lo. Abra a folha de estilo impressionante da fonte, vá para a class
fonte que você deseja usar fa-phone
, copie a propriedade content sob essa classe com a entidade e use-a como:
a:before {
font-family: FontAwesome;
content: "\f095";
}
Apenas certifique-se de que se você deseja segmentar uma a
tag específica , considere usar uma opção class
para torná-la mais específica, como:
a.class_name:before {
font-family: FontAwesome;
content: "\f095";
}
Usando o caminho acima, você colará o ícone com o texto restante, portanto, se você quiser ter um pouco de espaço entre os dois, faça-o display: inline-block;
e use alguns padding-right
:
a:before {
font-family: FontAwesome;
content: "\f095";
display: inline-block;
padding-right: 3px;
vertical-align: middle;
}
Estendendo esta resposta ainda mais, já que muitos podem ter um requisito para alterar um ícone ao passar o mouse; portanto, para isso, podemos escrever um seletor e regras de :hover
ação separados :
a:hover:before {
content: "\f099"; /* Code of the icon you want to change on hover */
}
Agora, no exemplo acima, o ícone se desloca por causa do tamanho diferente e você certamente não deseja isso; portanto, você pode definir uma width
declaração fixa na base, como
a:before {
/* Other properties here, look in the above code snippets */
width: 12px; /* add some desired width here to prevent nudge */
}
font-family: FontAwesome;
ele, também muda a fonte das tags âncora. Como podemos lidar com isso?
font-family
é suposto ser chamado :before
tag pseudo e não âncora
content
códigos corretos para a cópia direta (ou seja, não é necessário). PS: Ainda me pergunto por que os caras do FontAwesome não colocam os códigos de conteúdo em cada página de ícone ?!
Outra solução sem que você precise mexer manualmente com os caracteres Unicode pode ser encontrada em Como tornar a fonte impressionante - Usando ícones sem i-tags ( aviso: escrevi este artigo ).
Em poucas palavras, você pode criar uma nova classe como esta:
.icon::before {
display: inline-block;
margin-right: .5em;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transform: translate(0, 0);
}
E use-o com qualquer ícone, por exemplo:
<a class="icon fa-car" href="#">This is a link</a>
a:before {
content: "\f055";
font-family: FontAwesome;
left:0;
position:absolute;
top:0;
}
Exemplo de link: https://codepen.io/bungeedesign/pen/XqeLQg
Obtenha o código do ícone em: https://fontawesome.com/cheatsheet?from=io
Você deve ter o peso da fonte definido como 900 para que a família de fontes Font Awesome 5 Free funcione.
Este é o trabalho:
.css-selector::before {
font-family: 'Font Awesome 5 Free';
content: "\f101";
font-weight: 900;
}
Como diz o site FontAwesome FontAwesome =>
HTML:
<span class="icon login"></span> Login</li>
CSS:
.icon::before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
}
.login::before {
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f007";
}
Em .login::before
-> edite content:'';
para se adequar ao seu unicode.
Atualização para o Font Awesome 5 usando SCSS
.icon {
@extend %fa-icon;
@extend .fas;
&:before {
content: fa-content($fa-var-user);
}
}
Aqui está minha solução webpack 4 + font awesome 5:
plugin webpack:
new CopyWebpackPlugin([
{ from: 'node_modules/font-awesome/fonts', to: 'font-awesome' }
]),
estilo css global:
@font-face {
font-family: 'FontAwesome';
src: url('/font-awesome/fontawesome-webfont.eot');
src: url('/font-awesome/fontawesome-webfont.eot?#iefix') format('embedded-opentype'),
url('/font-awesome/fontawesome-webfont.woff2') format('woff2'),
url('/font-awesome/fontawesome-webfont.woff') format('woff'),
url('/font-awesome/fontawesome-webfont.ttf') format('truetype'),
url('/font-awesome/fontawesome-webfont.svgfontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
i {
font-family: "FontAwesome";
}