使用fontawesome图标作为<img/>的替代文字

时间:2016-03-10 08:59:31

标签: html unicode font-awesome

在DOM准备就绪后,我有一些装有廉价技巧的图像:

<img src="" data-src="/path/to/img" alt="">

我只是将data-src的内容放入src - 属性中。没什么特别的。
但是由于要加载大约一百个图像,这需要一些时间。所以我试图使用FontAwesome图标的unicode作为alt-text来显示一个齿轮作为占位符:

<img src="" data-src="/path/to/img" alt="&#xf013;">

不幸的是,这不起作用,因为整个FontAwesome-magic没有点击 有没有人尝试过同样的事情?毕竟这可能吗?

3 个答案:

答案 0 :(得分:1)

我无法为此解决方案赢得荣誉,该解决方案属于@PeeHaa,后者撰写了解决@Stephan_Weinhold问题的评论。

由于所有官方答案都使用JavaScript,因此我只是想使内容更加清晰,只有阅读注释,您才能发现使用简单的HTML / CSS即可。

HTML

<img src="" data-src="/path/to/img" alt="&#xf007;" class="passphoto">

CSS

img.passphoto { 
    font-family: 'Font Awesome 5 Free';
    /* customize the following as desired */
    font-size: 9em;
    display: inline-block;
    width: 200px;
    height: 234px;
    border: 1px solid lightgray;
}

答案 1 :(得分:0)

我怕你不能。但我可以为你提供一个技巧。

诀窍是你可以处理图像加载错误(这就是你想要替代文本的原因,不是吗?),然后显示你想要的图标。

这不是SEO的好解决方案,但你想要显示一个图标,所以我想这不是你的目标。

注意如果您无法在代码段中看到效果,请在bin中观看 - 我认为这是因为缓存问题。

$('img').bind('error', function() {
  console.log('error');
  $(this).hide().after('<i class="fa fa-gear"></i>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet"/>
<img src="blablalba" />

http://jsbin.com/kahuxaqezu/1/edit?html,js,output

答案 2 :(得分:0)

我现在在iPhone上遇到此问题吗?

如果找不到图片,我使用 ONERROR 注入 CLASS

CSS

/* FONT AWESOME (support for all icons) */
.icon::before {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}
/* FONT AWESOME (user icon) */
.fa_user:after {
    font-family: 'Font Awesome 5 Free';
    font-size: 9em !important;              /* added !important, couldn't use 900, didn't work */
    content: "\f2bd";                       /* UNICODE (Font Awesome) <i class="far fa-user-circle"></i> */
    line-height: 1.0;                       /* I had to add this because it was INHERITING 1.5 throwing off the spacing */
}

HTML

<img src="./images/.photo.jpg" onerror="this.classList.add('icon', 'fa_user');" alt=''>

Font Awesome documentation

User Icon