ใช้ไอคอนตัวอักษรที่น่ากลัวใน CSS


305

ฉันมี CSS ที่มีลักษณะเช่นนี้:

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

ผมอยากจะเปลี่ยนภาพที่มีไอคอนจากตัวอักษรที่น่ากลัว

ฉันไม่เห็นว่าจะใช้ไอคอนใน CSS เป็นภาพพื้นหลัง เป็นไปได้ไหมถ้าสมมติว่ามีการโหลดสไตล์ / แบบอักษรของ Awesome Awesome ก่อน CSS ของฉัน


สัญลักษณ์แบบอักษรไม่สามารถใช้เป็นพื้นหลังได้ อย่างไรก็ตาม
SVG

@cimmanon คุณจะอธิบายว่าจะนำไปใช้กับแบบอักษรที่
ยอดเยี่ยมได้อย่างไร

@BawaiOak สิ่งที่จะอธิบายว่ายังไม่ได้อธิบายโดยคำตอบที่เลือก? หากคุณมีคำถามที่ไม่ได้รับคำตอบจากคำถามนี้ (หรือคำถามอื่น ๆ เกี่ยวกับ SO) ให้ถามคำถามใหม่
cimmanon

@cimmanon ขออภัยในความไม่ชัดเจน คุณดูเหมือนจะบอกเป็นนัยว่าเป็นไปได้ที่จะใช้ไอคอนจากไฟล์ฟอนต์-Awesome.svg เป็นพื้นหลัง อย่างไรก็ตามคุณไม่เคยพูดอย่างชัดเจนดังนั้นฉันไม่แน่ใจ
BonsaiOak

1
@BaoOak ใช่คุณสามารถใช้ SVG เป็นภาพพื้นหลังได้เช่นเดียวกับที่คุณใช้ภาพอื่น ๆ อย่างไรก็ตามฉันไม่ได้ดู FontAwesome SVG จริง ๆ เพื่อตรวจสอบว่าสามารถใช้งานได้ด้วยวิธีนี้
cimmanon

คำตอบ:


489

คุณไม่สามารถใช้ข้อความเป็นภาพพื้นหลังได้ แต่คุณสามารถใช้คลาส:beforeหรือ:afterหลอกเพื่อวางอักขระข้อความตามที่คุณต้องการโดยไม่ต้องเพิ่มมาร์คอัปที่ยุ่งเหยิงทุกชนิด

ให้แน่ใจว่าได้ตั้งค่าposition:relativeบน wrapper ข้อความจริงของคุณเพื่อให้การวางตำแหน่งทำงาน

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

แก้ไข:

Font Awesome v5 ใช้ชื่อแบบอักษรอื่นที่ไม่ใช่รุ่นที่เก่ากว่า:

  • สำหรับ FontAwesome v5 เวอร์ชันฟรีให้ใช้: font-family: "Font Awesome 5 Free"
  • สำหรับ FontAwesome v5, รุ่น Pro ให้ใช้: font-family: "Font Awesome 5 Pro"

โปรดทราบว่าคุณควรตั้งค่าคุณสมบัติแบบอักษรน้ำหนักเดียวกันด้วย (ดูเหมือนจะเป็น 900)

อีกวิธีในการค้นหาชื่อแบบอักษรคือคลิกขวาที่ไอคอนตัวอักษรตัวอย่างที่ดีเลิศบนหน้าของคุณและรับชื่อแบบอักษร (เช่นเดียวกับที่พบไอคอนรหัส utf-8 แต่โปรดทราบว่าคุณสามารถค้นหาได้:before)


63
ข้อความที่เทียบเท่ากับแต่ละไอคอนมีfortawesome.github.io/Font-Awesome/cheatsheet
Matthieu

61
คุณจะต้องลบ & # x จากจุดเริ่มต้นและ; จากจุดสิ้นสุด ชื่อตัวอักษรในตระกูลคือ FontAwesome
Matthieu

5
@ David font-sizeมันเป็นเพียงข้อความใช้
JCM

6
สำหรับ FontAwesome v5 ที่คุณต้องใช้ .backspace:before { font-family: "Font Awesome 5 Free"; font-weight: 900; content: "\f55a"; }
Digvijayad

5
เพียงทราบว่าสิ่งนี้ดูเหมือนจะไม่ทำงานกับองค์ประกอบการป้อนข้อมูล (เช่นปุ่มส่ง) เนื่องจากดูเหมือนจะไม่รองรับ: ก่อนหรือ: หลัง
เมียร์

70

นอกเหนือจากคำตอบจาก Diodeus ด้านบนคุณต้องมีfont-family: FontAwesomeกฎ (สมมติว่าคุณมี@font-faceกฎสำหรับ FontAwesome ที่ประกาศไว้แล้วใน CSS ของคุณ) จากนั้นเป็นเรื่องของการรู้ว่าค่าเนื้อหา CSS สอดคล้องกับไอคอนใด

ฉันได้แสดงรายการไว้ที่นี่: http://astronautweb.co/snippet/font-awesome/


1
ทำงานหลังจากที่ฉันลบตำแหน่ง: สัมบูรณ์; ใน .element นี้มาก่อนตอนนี้ฉันสามารถตกแต่งลิงก์ของฉันที่มีไอคอนน่ากลัวตัวอักษร แต่เก็บอักษรที่กำหนดเองของฉันของการเชื่อมโยง
jethroo

รายการที่ดีของค่าเนื้อหา!
แอนโทนี่

1
ตามที่ระบุไว้ในคำตอบโดย @staabm, FontAwesome รักษารายการอย่างเป็นทางการของรหัสสำหรับแต่ละสัญลักษณ์: fontawesome.io/cheatsheet
alxndr

24

จริงๆแล้วfont-awesomeCSS มีกลยุทธ์คล้ายกันสำหรับการตั้งค่าสไตล์ไอคอน ถ้าคุณต้องการที่จะได้รับถืออย่างรวดเร็วของicon รหัสตรวจสอบnon-minified font-awesome.cssไฟล์และมีพวกเขาเป็น .... ตัวอักษรในแต่ละความบริสุทธิ์ของตน

ภาพหน้าจอของไฟล์ CSS-Font


22

รวมทุกอย่างข้างต้นต่อไปนี้เป็นชั้นสุดท้ายที่ทำงานได้ดี

   .faArrowIcon {
        position:relative;
    }

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

คำตอบที่ดีที่สุดเนื่องจากคุณสามารถลบแท็ก <i> ก่อนหน้าออกจากข้อความที่คุณต้องการด้วยไอคอนและแทนที่ด้วยสิ่งนี้ และให้พื้นที่เดียวกัน
andygoestohollywood

7

คุณสามารถลองคลาสตัวอย่างนี้ และค้นหาเนื้อหาไอคอนที่นี่: 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 ทำตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1 - เพิ่มแบบอักษรของ FontAwesome ใน CSS

/*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');
}

ขั้นตอน - 2 ใช้ css ด้านล่างเพื่อใช้แบบอักษรกับองค์ประกอบของ HTML

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

และสุดท้ายใช้คลาส " sorting_asc " เพื่อใช้ css กับแท็ก / องค์ประกอบ HTML ที่ต้องการ


2

ไม่จำเป็นต้องฝังเนื้อหาลงใน CSS คุณสามารถใส่เนื้อหาตราไว้ในองค์ประกอบ fa แล้วปรับ css ตรา 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
"ไม่จำเป็นต้องฝังเนื้อหาลงใน CSS" ในบางสถานการณ์ก็จำเป็น
Stéphane Bruckert

2
หากคุณไม่สนใจเกี่ยวกับการเพิ่มประสิทธิภาพแบบก้าวหน้า แต่ก็ควรเก็บสไตล์ของคุณไว้ในไฟล์ css ทุกครั้งที่ทำได้
Adam Carr

2

หรือหากใช้ Sass คุณสามารถ "ขยาย" ไอคอน FA เพื่อแสดง:

.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

สำหรับสิ่งนี้คุณเพียงแค่ต้องเพิ่มแอcontentททริบิวต์และแอfont-familyททริบิวต์ให้กับองค์ประกอบที่ต้องการผ่าน: before หรือ: after

ตัวอย่างเช่นฉันต้องการแนบไอคอนไฟล์แนบหลังจากaองค์ประกอบทั้งหมดในโพสต์ของฉัน ดังนั้นก่อนอื่นฉันต้องค้นหาว่าไอคอนดังกล่าวมีอยู่ใน fontawesome หรือไม่ เช่นเดียวกับในกรณีที่ผมพบว่ามันนี่fa fa-paperclipคือ แล้วฉันจะคลิกขวาที่ไอคอนที่นั่นและไป::beforeคุณสมบัติหลอกดึงข้อมูลออกแท็กจะใช้ซึ่งในกรณีของฉันฉันพบว่าเป็นcontent \f0c6จากนั้นฉันจะใช้สิ่งนั้นใน css ของฉันเช่นนี้:

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.