【问题标题】:How to get Font Awesome Icon in react app for a pseudo element in css如何在反应应用程序中为css中的伪元素获取Font Awesome Icon
【发布时间】:2018-11-13 04:42:01
【问题描述】:

以下是我的 css 文件:

@import '~font-awesome/css/font-awesome.min.css';

.btn {
  position: relative;
  text-align: center;
  border-radius: 100% 0 0 100% !important;
  height: 35px;
  width: 35px;
  font-size: 12px !important;
  background-color: white !important;
  color: dodgerblue !important;
  border-color: dodgerblue !important;
  transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
}

#add-btn.btn::after {
  position: absolute;
  font-family: 'Font Awesome 5 Free';
  content: '\f101';
  font-size: 15px;
}

这是我的 jsx 文件。

import React, { Component } from 'react';
import { Card, CardImg, CardText, CardBody, CardTitle, CardSubtitle, Button } from 'reactstrap';
// import 'font-awesome/css//font-awesome.min.css';
import './Books.css';

class BookCard extends Component {
  render() {
    return (
      <div className="BookCard mx-auto">
        <Card>
          <div className="img-container">
            <CardImg src={this.props.book.imageUrl} />
          </div>
          <CardBody>
            <CardTitle>{this.props.book.title}</CardTitle>
            <CardSubtitle className="mb-2">{this.props.book.subtitle}</CardSubtitle>
            <div className="description">
              <CardText>{this.props.book.description}</CardText>
            </div>
            <div className="button-container">
              <Button id="add-btn">Add</Button>
            </div>
          </CardBody>
        </Card>
      </div>
    );
  }
}

export default BookCard;

在上面的 css 文件中,我想插入一个很棒的字体图标作为我的按钮的伪元素,id 为 add-btn。按钮元素的默认类是 .btn

在css文件中,我用#add-btn.btn::after这个语法试过了,.btn::after也是这样。 我也尝试在 jsx 文件中导入font-awesome.min.css,但它没有给我图标。 而是显示一个正方形

P.S 我也尝试将其导入index.js 文件中

谁能帮我解决这个问题。

【问题讨论】:

    标签: css reactjs font-awesome


    【解决方案1】:

    与 React 无关

    加粗字体,直到你输入正确的font-weight才会显示

    问题示例

    .test {
      font-size: 5em;
    }
    
    .test:after {
      position: absolute;
      font-family: 'Font Awesome 5 Free';
      content: '\f101';
    }
    <link href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" rel="stylesheet" />
    <div class="test"></div>

    修复

    已添加font-weight: 900;

    .test {
      font-size: 5em;
    }
    .test::after {
      position: absolute;
      font-family: 'Font Awesome 5 Free';
      content: '\f101';
      font-weight: 900;
    }
    <link href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" rel="stylesheet" />
    <div class="test"></div>

    【讨论】:

      【解决方案2】:

      您可以在 beforeafter

      的 css 类中简单地使用 font-awesome

      试试这个代码:

      .class-name:before {
          font-family: "Font Awesome 5 Free";
          font-weight: 400;
          content: "\f1ea";
          position:absolute;
          color:#ccc;
          top:0;
          right:0;
          font-size:25px;
          font-weight:500;
          z-index:-1;
          opacity:0.5;
      }
      

      如果不工作,请确保您安装了 fontawesome 库

      如何安装? check here >>

      【讨论】:

        【解决方案3】:

        使用 SVG 作为背景图片:

        .angle-after:after {
          display: block;
          content: '';
          background-image: url('../../node_modules/@fortawesome/fontawesome-pro/svgs/light/angle-right.svg');
          background-size: 28px 28px;
          height: 28px;
          width: 28px;
        }
        

        【讨论】:

          猜你喜欢
          • 2019-07-16
          • 2018-11-13
          • 2018-05-22
          • 2021-12-02
          • 2020-01-13
          • 1970-01-01
          • 2020-03-26
          • 2018-06-02
          • 2019-01-13
          相关资源
          最近更新 更多