Font Awesome 아이콘을 CSS 컨텐츠로 사용


278

Font Awesome 아이콘을 CSS 내용으로 사용하고 싶습니다.

a:before {
    content: "<i class='fa...'>...</i>";
}

에서 HTML 코드를 사용할 수 없다는 것을 알고 content있으므로 이미지 만 남아 있습니까?


메모리에서 content 속성을 사용하여 HTML을 DOM에 삽입 할 수 없습니다. 평범한 오래된 텍스트.
Mike Causer

답변:


633

Aurelien 덕분 에 FontAwesome 5 업데이트

당신은을 변경할 필요 font-familyFont Awesome 5 Brands하거나 Font Awesome 5 Free당신이 렌더링하려고하는 아이콘의 유형에 따라. 또한 선언하는 것을 잊지 마십시오font-weight: 900;

a:before {
   font-family: "Font Awesome 5 Free";
   content: "\f095";
   display: inline-block;
   padding-right: 3px;
   vertical-align: middle;
   font-weight: 900;
}

데모

아래의 나머지 답변을 읽고 작동 방식을 이해하고 아이콘과 텍스트 사이의 간격에 대한 해결 방법을 알 수 있습니다.


FontAwesome 4 이하

그것을 사용하는 잘못된 방법입니다. 글꼴 멋진 스타일 시트를 열고 classsay 사용하려는 글꼴 로 이동하여 fa-phone해당 클래스 아래의 컨텐츠 특성을 엔티티와 함께 ​​복사 한 후 다음과 같이 사용하십시오.

a:before {
    font-family: FontAwesome;
    content: "\f095";
}

데모

특정 a태그 를 타겟팅하려는 경우 class대신 다음 과 같이보다 구체적인 태그를 사용하는 것이 좋습니다.

a.class_name:before {
    font-family: FontAwesome;
    content: "\f095";
}

위의 방법을 사용하면 아이콘에 나머지 텍스트가 붙어 있으므로 두 텍스트 사이에 약간의 공간이 필요하면 다음 display: inline-block;을 사용하십시오 padding-right.

a:before {
    font-family: FontAwesome;
    content: "\f095";
    display: inline-block;
    padding-right: 3px;
    vertical-align: middle;
}

많은 사람들이 호버에서 아이콘을 변경해야 할 필요가 있기 때문에이 답변을 더 확장하면 별도의 선택기와 :hover작업 규칙을 작성할 수 있습니다 .

a:hover:before {
    content: "\f099"; /* Code of the icon you want to change on hover */
}

데모

위의 예에서, 크기가 다르기 때문에 아이콘이 조금 움직이며 반드시 원하지 않으므로 width기본 선언에 고정 을 설정할 수 있습니다

a:before {
    /* Other properties here, look in the above code snippets */
    width: 12px; /* add some desired width here to prevent nudge */
}

데모



으로 font-family: FontAwesome;그것은 또한 앵커 태그의 글꼴을 변경합니다. 어떻게 처리 할 수 ​​있습니까?
Shubh

@Shubh는 코드를주의 깊게 읽고 앵커 태그가 아닌 의사에서 font-family호출되는 것으로 가정합니다:before
Mr. Alien

소스를 파지 않고도 특정 아이콘의 유니 코드 사양을 찾을 수 있다고 여기에 추가한다고 생각했습니다. font awesome 웹 사이트의 아이콘 목록으로 이동하여 원하는 아이콘을 클릭하십시오. 페이지의 아이콘 샘플 바로 아래에서 유니 코드 값을 볼 수 있습니다. fortawesome.github.io/Font-Awesome/icon/pencil-square-o
Allen Underwood

FontAwesome에 대한이 CSS 유니 코드 목록이 더 좋습니다. astronautweb.co/snippet/font-awesomecontent 은 직접 복사를위한 올바른 코드를 보여줍니다 (예 : 무료). 추신 : 여전히 FontAwesome 사람들이 각 아이콘 페이지에 콘텐츠 코드를 넣지 않는 이유가 궁금합니다!
Kai Noack

25

유니 코드 문자를 수동으로 엉망으로 만들지 않아도되는 또 다른 해결책은 Font Awesome awesome-i-tags가없는 아이콘 사용 ( 면책 조항 :이 기사를 작성했습니다 )에서 찾을 수 있습니다.

간단히 말해서 다음과 같이 새 클래스를 만들 수 있습니다.

.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);
}

그런 다음 아무 아이콘이나 사용하십시오.

<a class="icon fa-car" href="#">This is a link</a>

23

font-awesome에서 SCSS 파일에 액세스 할 수 있으면 다음과 같은 간단한 솔루션을 사용할 수 있습니다.

.a:after {
    // Import mixin from font-awesome/scss/mixins.scss
    @include fa-icon();

    // Use icon variable from font-awesome/scss/variables.scss
    content: $fa-var-exclamation-triangle;
}


3

CSS에서 유니 코드를 사용할 수 있습니다. font awesome 5를 사용하는 경우 이것이 구문입니다.

.login::before {
    font-family: "Font Awesome 5 Free"; 
    font-weight: 900; 
    content: "\f007";  
}

여기에서 해당 설명서를 볼 수 있습니다 .


3

Font Awesome 5 Free에 대해 글꼴 두께를 900으로 설정해야합니다 font-family가 작동 해야합니다.

이것은 작동하는 것입니다.

.css-selector::before {
   font-family: 'Font Awesome 5 Free';
   content: "\f101";
   font-weight: 900;
}

1

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";
   }

에서 .login::before-> content:'';유니 코드에 맞게 편집 하십시오.


1

SCSS를 사용한 Font Awesome 5 업데이트

.icon {
  @extend %fa-icon;
  @extend .fas;

  &:before {
    content: fa-content($fa-var-user);
  }
}

0

여기 내 webpack 4 + font awesome 5 솔루션이 있습니다.

웹팩 플러그인 :

new CopyWebpackPlugin([
    { from: 'node_modules/font-awesome/fonts', to: 'font-awesome' }
  ]),

글로벌 CSS 스타일 :

@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";
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.