2014-10-29 3 views
12

내 프로젝트에 Bootstrap 3을 사용하고 있는데 번들 된 Glyphicons 대신 FontAwesome 아이콘 라이브러리를 사용하고 있습니다.HTML을 바꾸지 않고 Glyphicons를 Bootstrap 3의 FontAwesome으로 대체하는 방법은 무엇입니까?

문제는 Glyphicons에 의존하는 타사 구성 요소가있어서 HTML을 변경하고 싶지 않다는 것입니다.

나는 BowerSASS + Compass (SCSS)을 통해 글꼴을 멋지게 포함합니다.

HTML을 변경하고 다른 CSS 클래스를 적용하지 않고 Glyphicon을 FontAwesome으로 대체 할 수 있습니까?

답변

18

당신은 SCSS를 사용 FontAwesome 사람과 Glyphicon CSS 클래스를 과부하 다음과 같은 방법을 사용할 수 있습니다

// Overloading "glyphicon" class with "fa". 
.glyphicon { 

    @extend .fa; 

    // Overloading "glyphicon-chevron-left" with "fa-arrow-left". 
    &.glyphicon-chevron-left { 
     @extend .fa-chevron-left; 
    } 

    // Overloading "glyphicon-chevron-right" with "fa-arrow-right". 
    &.glyphicon-chevron-right { 
     @extend .fa-chevron-right; 
    } 
} 

이 솔루션은 스티븐 Clontzbased on code입니다.

이 재정의하기 전에 FontAwesome SCSS를 가져와야합니다. 갈매기 왼쪽 다음과 같은 FontAwesome 아이콘 갈매기 오른쪽 : 위의 예에서

나는 다음과 같은 두 가지 Glyphicons에 과부하가있어 화살표 왼쪽화살표 오른쪽 공손히.

필요한 것을 얻으려면 타사 구성 요소에 사용 된 모든 아이콘에 과부하가 필요합니다.

그러나, 그것은 당신의 CSS 불필요하게 큰 것 원인, 모든 아이콘 과부하하지 마십시오 해킹으로 이것을 고려!

다른 아이콘 라이브러리에 대한 지원을 구현하려면 타사 공급 업체를 설득 해보십시오. 이것은 적절한 해결책이 될 것입니다.

+1

나는이 답변에 동의하고 글꼴 Awesome에서 Icomoon으로 전환하는이 정확한 시나리오를 완료했습니다.Glyphicon을 천천히 올바른 FA 아이콘으로 전환해야하므로 두 세트를 모두로드하지 않아도됩니다. – austinthedeveloper

+0

FontAwesome SCSS를 가져올 때 실제 글꼴을로드하는 데 문제가있어서'$ fa-font-path : "/ bower_components/font-awesome/fonts";'로 글꼴 경로를 설정해야했습니다. 이 작업을 수행하는 더 좋은 방법입니까? –

+0

@ PatriciaGarcia 글꼴 경로를 지정하는 올바른 방법이라고 생각합니다. 그러나'bower_components' 디렉토리를 웹에 직접 노출시키지 않고 필요한 특정 파일이나 디렉토리 만 노출합니다. Linux에서 심볼릭 링크를 사용하면 쉽게 구현할 수 있습니다. 이렇게하면 빌드 크기를 줄이는데도 도움이됩니다. –

5

모든 글리 phicon 아이콘을 font-awesome에 매핑하기 위해이 GIST를 만들었습니다. 나는 대략 95 %의 정확도와 적용 범위를 가지고 있다고 추정 할 수있다. (glyphicon은 쓸모없는 아이콘을 가지고있다.

https://gist.github.com/blowsie/15f8fe303383e361958bd53ecb7294f9

code removed in favor of gist


이 당신이 당신의 부트 스트랩 빌드에서 glyphicon 아이콘을 모두 제거하면 모든 아이콘 과부하 않는 경우에도 알면 실제로는 (몇 바이트를 절약 할 수 - 물론 멋진 글꼴)

+0

'& .glyphicon-transfer { @extend .fa-exchange } ' 주소를 한 번 더 지정하십시오. – maszynka

1

순수한 CSS에서는 font-awesome class (.fa)와 동일한 속성으로 글리프 콘 클래스를 정의하고 원하는 아이콘과 일치시킵니다.

.glyphicon{ 
    display: inline-block; 
    font: normal normal normal 14px/1 FontAwesome; 
    font-size: inherit; 
    text-rendering: auto; 
    -webkit-font-smoothing: antialiased; 
    -moz-osx-font-smoothing: grayscale; 
} 
.glyphicon-chevron-left:before{ 
    content:"\f053" 
} 
.glyphicon-chevron-right:before{ 
    content:"\f054" 
}