Укладка веб-сайта с нестандартным шрифтом с использованием @font-face
требует, чтобы браузер сначала загружал файл шрифта (точно так же, как он загружает другие активы, например CSS, JavaScripts и т. Д.), Прежде чем произойдет реальное исполнение ,Рассчитать высоту контейнера после загрузки файла шрифта
Это указывает на проблему с Chrome (v16.0.912.63) и Safari (v5.1.2), когда jQuery .height()
пытается вычислить высоту своего контейнера. Вычисленная высота до шрифт заканчивается loading. Рассмотрим следующий (вид: working example):
/* CSS */
h1 {
font-family: MuseoSlab-500, "Helvetica Neue", Helvetica, Arial, sans-serif;
/* MuseoSlab-500 is defined using @font-face. */
}
/* HTML */
<div id="box">
<h1>This is my long header. What do you think? How about now?</h1>
</div>
/* JavaScript */
$(function() {
alert("The height of the above <div> = " + $('div#box').height());
});
Однако Firefox (v8.0.1) может вычислить правильную высоту т.е. после того, как текст визуализируется с использованием нестандартного шрифта.
Вопрос заключается в том, есть ли практический способ рассказать Chrome или идеально всем браузерам, чтобы ждать, пока текст будет отображаться с использованием предполагаемого шрифта перед выполнением расчета.
Использование $(window).load()
работает, но это подразумевает ожидание, например. все изображения для завершения загрузки; он так сильно замедляется.
В случае, если вы использовали его раньше, может ли он загрузить локальную таблицу стилей, в которой указан '@ font-face'? Вы упомянули что-то о загрузке таблицы стилей от любого поставщика, но я не был уверен, будет ли он работать в локальной таблице стилей. – moey