CSS'de Harika Yazı Tipi Simgeleri Kullanma


305

Şuna benzeyen bazı CSS var:

#content h2 {
   background: url(../images/tContent.jpg) no-repeat 0 6px;
}

Resmi Font Awesome'deki bir simgeyle değiştirmek istiyorum .

Yine de CSS'deki simgeyi arka plan görüntüsü olarak kullanmıyorum. Font Awesome stil sayfalarının / yazı tiplerinin CSS'imden önce yüklendiği varsayılabilir mi?


Fontlardaki glifler arka plan olarak kullanılamaz. Ancak
SVG'ler

@cimmanon bunun font-awesome için nasıl geçerli olabileceğini açıklar
mısınız

@BonsaiOak Seçilen cevapta henüz açıklanmayan ne açıklanacak? Bunun (veya SO ile ilgili başka bir sorunun) yanıtı olmayan bir sorunuz varsa, yeni bir soru sorun.
cimmanon

@cimmanon netlik eksikliği için üzgünüm. Arka plan olarak font-awesome.svg yazı tipi dosyasından bir simge kullanmanın mümkün olduğunu ima ediyor gibisiniz. Ancak, bunu açıkça söylemedin, bu yüzden emin değilim.
BonsaiOak

1
@BonsaiOak Evet, olabilir bir arka plan görüntüsü, başka resim kullanmak istiyorsunuz aynı yolu olarak bir SVG kullanın. Ancak, aslında bu şekilde kullanılabileceğini doğrulamak için FontAwesome SVG'ye bakmadım.
cimmanon

Yanıtlar:


489

Metni arka plan görüntüsü olarak kullanamazsınız, ancak her tür dağınık ekstra işaretleme eklemek zorunda kalmadan istediğiniz yere bir metin karakteri yerleştirmek için :beforeveya :aftersözde sınıfları kullanabilirsiniz.

position:relativeKonumlandırmanın çalışması için gerçek metin sarma makinenizi ayarladığınızdan emin olun .

.mytextwithicon {
    position:relative;
}    
.mytextwithicon:before {
    content: "\25AE";  /* this is your text. You can also use UTF-8 character codes as I do here */
    font-family: FontAwesome;
    left:-5px;
    position:absolute;
    top:0;
 }

DÜZENLE:

Font Awesome v5, eski sürümlerden başka yazı tipi adları kullanır:

  • FontAwesome v5, Ücretsiz Sürüm için şunları kullanın: font-family: "Font Awesome 5 Free"
  • FontAwesome v5, Pro Sürümü için şunu kullanın: font-family: "Font Awesome 5 Pro"

Aynı font ağırlığı özelliğini de ayarlamanız gerektiğini unutmayın (900 gibi görünüyor).

Yazı tipi adını bulmanın başka bir yolu, sayfanızdaki örnek bir yazı tipi müthiş simgesine sağ tıklamak ve yazı tipi adını almaktır (utf-8 simge kodunun bulunabileceği gibi, ancak bulabileceğinizi unutmayın :before).


63
Her simgenin metin eşdeğeri orada fortawesome.github.io/Font-Awesome/cheatsheet
Matthieu

61
& # X 'ı baştan kaldırmanız gerekecek ve; Sonundan. Yazı tipi-aile adı FontAwesome
Matthieu

5
@David, sadece metin, kullan font-size.
JCM

6
FontAwesome v5 için kullanmanız gerekir .backspace:before { font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f55a"; }
Digvijayad

5
Bunun, Giriş öğeleriyle (bir gönderme düğmesi gibi) işe yaramıyor gibi göründüğü bir not: çünkü desteklemiyorlar: önce veya: sonra.
Mir

70

Yukarıdaki Diodeus'un cevabına ek olarak, font-family: FontAwesomekurala ihtiyacınız var ( @font-faceCSS'nizde zaten belirtilen FontAwesome kuralına sahip olduğunuzu varsayarak ). Sonra hangi CSS içerik değerinin hangi simgeye karşılık geldiğini bilmek önemlidir.

Hepsini burada listeledim: http://astronautweb.co/snippet/font-awesome/


1
pozisyon kaldırıldıktan sonra çalıştı: mutlak; .element: önce, şimdi bağlantıları harika simgeler ile dekore edebilirsiniz ama bağlantı benim özel yazı
jethroo

içerik değerlerinin mükemmel listesi!
Anthony

1
@Staabm tarafından verilen cevapta belirtildiği gibi, FontAwesome her glif için kodların resmi bir listesini tutar: fontawesome.io/cheatsheet
alxndr

24

Aslında font-awesomeCSS bile simge stillerini ayarlamak için benzer bir stratejiye sahiptir. icon Kodun hızlı bir şekilde tutulmasını istiyorsanız , non-minified font-awesome.cssdosyayı kontrol edin ve orada ... her yazı tipi saflığında.

Font-Awesome CSS File ekran görüntüsü


22

Yukarıdaki her şeyi birleştiren, aşağıda iyi sonuç veren son sınıf

   .faArrowIcon {
        position:relative;
    }

    .faArrowIcon:before {
        font-family: FontAwesome;
        top:0;
        left:-5px;
        padding-right:10px;
        content: "\f0a9"; 
    }

en iyi yanıtı, simge ile istediğiniz metnin önüne bir önceki <i> etiketini kaldırabilir ve bununla değiştirebilirsiniz. Ve aynı boşluk verilir.
andygoestohollywood

7

Bu örnek sınıfı deneyebilirsiniz. ve simge içeriğini burada bulabilirsiniz: http://astronautweb.co/snippet/font-awesome/

  #content h2:before {
    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;
    transform: translate(0, 0);
    content: "\f007";
    }

6

Css kullanarak awesome yazı tipini kullanmak için aşağıdaki adımları izleyin -

adım 1 - CSS'ye FontAwesome Fontları Ekleme

/*Font Awesome Fonts*/
@font-face {
    font-family: 'FontAwesome';
    //in url add your folder path of FontAwsome Fonts
    src: url('font-awesome/fontawesome-webfont.ttf') format('truetype');
}

Adım - 2 HTML'nin sınıf öğesine yazı tipi uygulamak için aşağıdaki css kullanın

.sorting_asc:after {
    content: "\f0de"; /* this is your text. You can also use UTF-8 character codes as I do here */
    font-family: FontAwesome;
    padding-left: 10px !important;
    vertical-align: middle;
}

Son olarak, css'i istenen HTML etiketine / öğesine uygulamak için " sorting_asc " sınıfını kullanın.


2

İçeriği CSS'ye gömmeye gerek yok. Rozet içeriğini fa öğesinin içine koyabilir, ardından rozet css'sini ayarlayabilirsiniz. http://jsfiddle.net/vmjwayrk/2/

<i class="fa fa-envelope fa-5x" style="position:relative;color:grey;">
  <span style="
        background-color: navy;
        border-radius: 50%;
        font-size: .25em;
        display:block;
        position:absolute;
        text-align: center;
        line-height: 2em;
        top: -.5em;
        right: -.5em;
        width: 2em;
        height: 2em;
        border:solid 4px #fff;
        box-shadow:0px 0px 1px #000;
        color: #fff;
    ">17</span>
</i>

8
Msgstr "İçeriği CSS'ye yerleştirmeye gerek yok". Bazı durumlarda buna ihtiyaç vardır.
Stéphane Bruckert

2
Aşamalı geliştirme ile ilgilenmiyorsanız, ancak stilinizi mümkün olduğunca bir css dosyasının içinde tutmalısınız.
Adam Carr

2

Alternatif olarak, Sass kullanıyorsanız, FA simgelerini görüntülemek için "genişletilebilir":

.mytextwithicon:before {
  @extend .fas, .fa-angle-double-right;

  @extend .mr-2; // using bootstrap to add a small gap
                 // between the icon and the text.
}


0

Bunun için, gerekli öğeye contentöznitelik ve font-familyöznitelik eklemeniz gerekir : önce veya: sonra mümkün olduğunda.

Örneğin: Yazımın içindeki tüm öğeden sonra bir ek simgesi eklemek istedim a. Yani, önce böyle bir simge fontawesome içinde olup olmadığını aramak gerekir. Burada bulduğum gibi , yani fa fa-paperclip. Sonra simgeyi sağ tıklayıp kullandığı etiketi ::beforealmak için sözde özelliğe giderdim, contentbenim durumumda buldum \f0c6. Sonra css benim böyle kullanmak istiyorum:

   .post a:after {
     font-family: FontAwesome,
     content: " \f0c6" /* I added a space before \ for better UI */
    }

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.