如何在加载字体之前使用嵌入式元素设置字体图标的大小

我有这种情况。我需要文本内的图标字体,以便正确包装。我能做到的唯一方法是,如果我在文本和图标(带有很棒的字体的i标签)之间使用 ,则问题是在加载字体之前,图标的宽度为0px。而且它破坏了我用JavaScript编写的布局。它计算包装元素的大小。

对于我的情况,我有一个带有粘性标题的表,前两列是粘性的,所以我有4个表,并且我需要匹配每个表中单元格的大小,标题中的列后有类似(?)的图标文本。文字需要换行,但图标不能排成一行。因此,我将 和图标用作内联元素,内联块不与文本对齐,因此有时我的行尾带有图标。

我不能使用flex或table,因为我有需要包装的文本并且图标必须像字符一样。我曾考虑过在像m这样的字体加载之前为字体创建不同的字符,但是它不如图标宽。

我不能使用预加载功能,因为字体具有不同的文件,并且在我不喜欢的控制台中会出现错误(对于不适用于该浏览器的字体)。

<table><thead>
    <tr>
      <!--...-->
      <td>Some text&nbsp;<i class="fa fa-circle"></i></td>
      <!--...-->
    </tr>
</thead></table>
likedong13131313 回答:如何在加载字体之前使用嵌入式元素设置字体图标的大小

我找到了一种使这项工作有效的方法。我正在使用假图标,并在加载字体时将其隐藏。

table th i::after {
  content: '⌧';
  color: transparent;
}
.fonts-loaded table th i::after {
  content: none;
}

,我正在使用在此问题How to be notified once a web font has loaded中找到的字体加载API (browser support)。

document.fonts.ready.then(function () {
  document.documentElement.classList.add('fonts-loaded');
});
本文链接:https://www.f2er.com/3095953.html

大家都在问