zoukankan      html  css  js  c++  java
  • 为什么我引用bootstrap的font-awesome的图标不出来,就单单是一个HTML里面引用的?

    原文地址:https://www.zhihu.com/question/37015526?sort=created

    24 个回答

     

    我来猜猜:

    1、检查字体路径是否加载对了
    2、font-awesome样式文件是否加载对了
    3、是HTML中用(千万别加载CSS的硬编码),是CSS中用(千万别加载HTML的硬编码)
    4、是否跨域问题存在

    不过我从来未碰到题主所说的这种现象。
     
     

    尝试检查是否有下列问题:

    1. 没有加载 CSS;
    2. 没有加载字体文件。

    另外,font-awesome 是独立项目,并不属于 Bootstrap。Bootstrap 中使用的 icon font 叫做 Glyphicons。
     
     
    旧版是icon-
    新版是fa-
     
     
    我发现很多同学都没有回答到点子上,我自己也遇到了,也解决了这个问题,其实没那么复杂,很多同学想多了。
    因为我这边的版本是4.4,已经改成了.fa-XXX的形式了。
    然后我使用
    <i class="fa-home"></i>首页
    
    这种样式进去,发现是个方框。
    然后查看了一下css,发现.fa这个样式才是引入字体文件的。所以,这里的i还要加上.fa这个类
    <i class="fa fa-home"></i>首页
    
    问题解决!
    4之前的版本貌似还是icon,试试看吧!
     
     
    因为bootstrap和font-awsome都需要font里的ttf文件,然而bootstrap和font-awsome的文件夹里一个是fonts,一个是font。里面的ttf文件都是必须的。两个文件font、fonts和里面的ttf文件都需要有。
     
     
    根据我的经验,极有可能是font-awsome的css里指向font文件夹的路径写错了,原始的文件夹与css文件在同级目录。
     
     
    今天也遇到此问题,现在解决了,建立一个fonts文件夹,然后fonts文件夹下面又分别包含两个文件夹fonts和css,这个第二层fonts的文件夹中包含fontawesome-webfont.ttf。。。等ttf文件,css文件下面包含font-awesome.css文件,然后引入路径是fonts/css/font-awesome.css
     
     

    我这两天正好遇到一个类似的问题,困扰了两天终于解决了,其实是没有在web.xml做js和css文件的拦截处理而已。如果你的路径确定对的并且下载的js文件也没有错,那肯定就是这个原因了。

    解决办法:添加如下js css拦截处理
    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
    </servlet-mapping>

    原因:用servlet-mapping用来截获请求的,在加载请求的时候拦截你定义的资源名或路径,比如js、css、图片等静态资源的,如果没有添加截获请求,那在加载页面的时候就无法处理静态资源文件了,就加载不出来。
    比如你在网上找到一个css样式库,引用在线的链接可以加载 如<link href="xxx.xxx.xxx.css">是可以的,
    但是你把这个css下载下来,在本地引入 <link href="<%=request.getContextPath()%>/xxx.css" >就失败了。
    不知道这样说清楚吗?
    (以上只是我的个人认为,不知道对不对,但大概就是这样吧)

    可以参考这篇博文,下面由我的解释:
    servlet-mapping / 拦截图片 等静态,资源
     
     
    Bootstrap字体文件夹默认为fonts 而font-awesome字体默认文件夹为font,更改font-awesome.min.css里面的加载路径就行
     

    这种情况很明白不是吗,有个框框说明html引用font-awesome.css没问题,问题是你框框里的字体没法显示,就是说你缺少了字体。

    而这字体是font-awesome项目文件里引用的,你直接本地下载单个font-awesome是没用。

    不信你把你引用的font-awesome路径改成网络获取形式比如cdn或https而不是本地相对路径,图标就可能显示。

    答案就在font-awesome源代码里

    so, 既然要本地化那么就必然要递归下去。

    同样的道理在于在css文件里引用背景图片等。

     

    把下载好的文件结构直接放到项目中,只引入bootstrap.css就好啦,如果还不出来,你就看看你的项目中是否有其他的css文件,可能是冲突了,基本就这两个情况

     
    遇到了同样的问题,不知道题主解决了没有?
    css文件是这样引入的。
    

    目录结构是这样的


    我是把整个下载下来的文件放在了css中。

    图标也是不显示,有什么解决问题的办法吗?

     
    今天刚好解决了这个问题,在一开始我只导入了font-awesome.min.css文件,然后我就遇到了和题主一样的问题,需要导入fonts文件夹,并在css文件中修改fonts文件夹路径为你存放的位置,类似url('../../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular')
    以上,希望有帮助
     
    我也遇到了,因为是旧版本,改成icon-即可
     
    我引用的 font-awesome 在安卓手机上可以正常显示,苹果手机山不显示,电脑查看就显示一个框
     
    我的出来差不多也是这样子的。是因为有个样式冲突了。
     
    刚遇到一个iconfont 其他的正常显示 就一个图标不显示,最后看字体源码 原来是那个不显示的字体图标由四个部分拼凑成一个,只显示一个编码肯定不会显示图标
     
    加在一个空白的span上
     
    <link href="....">里面可加了rel属性
     
    我还是不懂
  • 相关阅读:
    死锁
    Hibernate—01
    POI
    线程 Thread
    SSH页面整合_01
    cnblogs安家了
    漫画:天堂里没有程序员!
    我又愿中国青年都只是向上走,不必理会这冷笑和暗箭!!!!!!!!
    一位信息系统项目管理培训老师写的《论婚姻项目管理》值得看一下!
    程序员保持健康的方法和经验
  • 原文地址:https://www.cnblogs.com/jianmingyuan/p/6627312.html
Copyright © 2011-2022 走看看