为什么 Font Awesome 图标在使用小字体时顶部有奇怪的 "margin"?

Why Font Awesome icons have weird "margin" on top when using small font-sizes?

我的目标是将字体超棒的图标与其旁边的 div 对齐。出于某种原因,超棒的字体图标似乎在小字体的图标顶部有一些边距,这会扩展包装 div。例如,p 标签不会发生同样的情况。示例可以在这里找到:

https://jsfiddle.net/jaakkokarhu/Luw8dsa8/2/

几点:

是什么导致字体超棒的图标相应地表现出来?如何设置图标和包装器,使图标不在顶部 "margin"?

// This text is just for removing the ridiculous "links to JS fiddle needs to be accompanied by code" warning. Ignore this.

罪魁祸首是[class^="icon"] { display: inline-block; },虽然我不知道为什么。

差距是因为[class^="icon"] { display: inline-block; }.如果你到达 display:block.

,它的行为将与 p 标签相同

内联块填充浏览器认为是字体大小的内容,其中包含您的图标。它对某些图标正确执行此操作,而对于较小的图标,它会进入 ghost space。如果您在 HTML 中添加 none breaking spaces,这也很明显,因为它们在 css 声明中有 "inline" 并且它试图保持完整性.

解决此问题的方法是为超棒的字体移除内联块 class。 或者添加 font-size: 0;在你的包装器中 class.

.wrapper {font-size: 0}

https://jsfiddle.net/Luw8dsa8/3/