更改FontAwesome图标的字体粗细?


76

我想减轻其中一个FontAwesome图标的重量-比我使用的字体重得多。目前的样子:

重删除图标,轻字体旁边

丑陋吧?因此,我尝试按以下方式重置font-weight:

.tag .icon-remove  { 
  font-weight: 100;
}

该属性在CSS中似乎已正确设置,但没有效果-图标看起来和以前一样重。我也试着font-weight: lighter-webkit-text-stroke-width: 1px没有效果。

有什么办法可以减轻图标的重量?文档说“您可以使用CSS字体样式进行的任何操作,都可以使用Font Awesome进行处理”,但是我不知道该怎么做。


4
TL; DR:不,您不能。

1
例如,您可以使用 content: "×";verdana字体
Taras

Answers:


61

2018更新

Font Awesome 5现在具有浅色常规色变体。该问题中的图标在不同的变体中具有以下样式:

fa-times变体

这个问题的现代答案是可以使用图标的不同变体来使图标显得更大或更亮。唯一的缺点是,如果您已经在使用固体,则必须退回到此处的原始答案以使这些字体更大胆,并且同样,如果您使用的是,则也必须这样做以使其更轻。

Font Awesome的“如何使用”文档介绍了如何使用这些变体。


原始答案

Font Awesome利用UnicodePrivate Use区域。例如,.icon-remove您使用的是使用::before伪选择器添加的,将其内容设置为\ f00d():

.icon-remove:before {
    content: "\f00d";
}

Font Awesome确实仅带有一个字体粗细变体,但是浏览器将渲染此字体,因为它们将仅渲染具有一种变体的任何字体。如果仔细观察,normal字体粗细不如bold字体粗细大。不幸的是,普通字体的粗细并不是您想要的。

但是,您可以做的是将其颜色更改为更暗的颜色,并减小其字体大小,以使其显得更突出。从您的图像中,“标签”文本看起来比图标浅得多,因此,我建议使用类似以下的内容:

.tag .icon-remove {
    color:#888;
    font-size:14px;
}

这是一个JSFiddle示例进一步证明了这绝对是一种字体。


6
@JamesDonnelly不仅解决了眼前的问题,而且还提供了直接解决用户最终意图的解决方案。感谢您的大力回应!
ThinkBonobo

1
因此,换句话说,您需要为专业图标付费;)
Marwen Trabelsi

我们不能在本机反应中使用它,可以吗?我正在尝试减小正尺寸的厚度。你能看看这个吗?Snack.expo.io/@lindapaiste/022490
Jnl

109

Webkit浏览器支持将“笔画”添加到字体的功能。这种风格使字体看起来更细(假设白色背景):

-webkit-text-stroke: 2px white;

此处关于codepen的示例:http ://codepen.io/mackdoyle/pen/yrgEH 某些人正在将SVG用于跨平台的“笔画”解决方案:http : //codepen.io/CrocoDillon/pen/dGIsK


1
如果您使用白色字体,请将以上内容更改为:-webkit-text-stroke: 2px black;以查看效果。辉煌;)
Kai Noack

在IE11中不起作用。在所有其他浏览器中均有效。
Oleg Abrazhaev

我们不能在本机反应中使用它,可以吗?我正在尝试减小正尺寸的厚度。你能看看这个吗?Snack.expo.io/@lindapaiste/022490
Jnl

27

只是为了帮助任何人进入此页面。如果您灵活使用其他图标库,则这是一种替代方法。

James是正确的,您不能更改字体粗细,但是如果您正在寻找更现代的图标外观,则可以考虑 ionicons

它同时具有ios和android版本的图标。


9
问题是关于FontAwesome而非ionicons
Chris

22
是的,我知道-如果有人具有灵活性,这是另一种选择。
Abhi 2015年


6

我用来创建较轻字体效果的另一种解决方案与该webkit-text-stroke方法类似,但更便于携带,它是将图标的颜色设置为与背景相同(或透明),并使用文本阴影创建轮廓:

.fa-outline-dark-gray {
    color: #fff;
    text-shadow: -1px -1px 0 #999,
            1px -1px 0 #999,
           -1px 1px 0 #999,
            1px 1px 0 #999;
}

它不能在IE <10中运行,但至少不限于Webkit浏览器。


我在页面上输出了很多图标,而我刚刚应用了此技术。总体上来说还不错,使用组合/堆叠的字体图标以及已着色的东西会变得棘手。但是,如果用例足够简单,那么确实可以减轻麻烦。
丹扎

我们不能在本机反应中使用它,可以吗?我正在尝试减小正尺寸的厚度。你能看看这个吗?Snack.expo.io/@lindapaiste/022490
Jnl

1
.star-light::after {
    content: "\f005";
    font-family: "FontAwesome";
    font-size: 3.2rem;
    color: #fff;
    font-weight: 900;
    background-color: red;
}

我们不能在本机反应中使用它,可以吗?我正在尝试减小正尺寸的厚度。你能看看这个吗?Snack.expo.io/@lindapaiste/022490
Jnl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.