Nano Hash - криптовалюты, майнинг, программирование

Проблема с отображением позиции веб-шрифта

Я использую настраиваемый веб-шрифт на своей странице, и у меня возникают проблемы с отображением на разных платформах. Выравнивание текста в блоках несколько отличается в linux и windows. Вот пример:

Chrome в Linux: введите здесь описание изображения

Chrome в Windows: введите здесь описание изображения

Они оба используют одну и ту же версию шрифта (otf), стили абсолютно одинаковы (одинаковая высота строки и поля).

Вот источник шрифта:

@font-face {
  font-family: 'Calibre Regular';
  src: url('fonts/Calibre-Regular.eot') format('embedded-opentype'),
       url('Calibre-Regular.otf')  format('opentype'),
       url('fonts/Calibre-Regular.woff') format('woff'),
       url('fonts/Calibre-Regular.ttf')  format('truetype'),
       url('fonts/Calibre-Regular.svg#Calibre-Regular') format('svg');
  font-weight: normal;
  font-style: normal;
}

Есть ли способ решить эту проблему?


  • Кажется, у вас проблема с кодом. Однако мы не можем помочь, если у нас нет кода или информации, которые могут воспроизвести проблему. В противном случае мы просто слепо гадаем. 19.09.2014
  • Это зависит от того, используют ли они одну и ту же версию шрифта, т. е. один может использовать версию svg, а другой может использовать версию woff, и в этом случае они будут отображаться по-разному. Затем вам нужно проверить, что высота строки по умолчанию и вертикальное выравнивание элемента одинаковы — высота строки выглядит одинаково, но одна из них выглядит вертикально выровненной по середине, а другая — вверху. 19.09.2014
  • У меня тоже была эта проблема, я, наконец, обнаружил ее сам, и это может быть вам полезно: stackoverflow.com/questions/7220937/. 20.09.2014
  • Спасибо за ответы. Думаю проблема какая-то в самом шрифте, стили элементов точно такие же (с помощью сброса), файлы шрифтов тоже. Тем не менее, есть некоторые ошибки при конвертации вручную, как предложил Герар, я посмотрю на эти ошибки и попытаюсь создать новые файлы. 22.09.2014

Ответы:


1

Это может быть вызвано webkit при рендеринге пользовательских шрифтов, попробуйте использовать -webkit-font-smoothing. Значение по умолчанию subpixel-antialiased. Попробуйте установить:

h1,h2,h3,h4,h5,h6 {
    -webkit-font-smoothing: antialiased;
}

Альтернативное решение

Если вышеперечисленное не работает, то это может сработать, раньше у меня была аналогичная проблема с хромом, и я случайно нашел это исправление в Интернете. Не уверен, где, но в основном заставляет Chrome использовать SVG-версию шрифта.

@media screen and (-webkit-min-device-pixel-ratio:0) {
    @font-face {
        font-family: 'nameOfFontFamily';
        src: font-url('url/to/svgfont.svg') format('svg');
    }
}
19.09.2014
  • Я пробовал это безуспешно, я думаю, что проблема с самим шрифтом. 22.09.2014
  • @GuilhermeVierno - у меня была похожая проблема раньше, и я думал, что это связано с самим шрифтом, однако я нашел для нее странное решение. Я отредактировал решение выше, чтобы включить это. Надеюсь, поможет. 22.09.2014
  • Да! Альтернативное решение работает как шарм. Большое спасибо! Это действительно странное решение... 23.09.2014
  • @GuilhermeVierno рад, что это сработало для вас :) да, очень странно. 23.09.2014

  • 2

    Браузеры отображают элементы по-разному - проблема может быть, даже если это один и тот же браузер. Определите поля, отступы и высоту строки в вашем CSS — вы можете использовать «reset.css».

    Попробуй это:

    p,h1,h2,h3,h4,h5,h6  {
        margin: 0;
        padding: 0;
        line-height: 1.4;
    }  
    
    19.09.2014
  • Я использую сброс бутстрапа, стиль элементов тот же. 22.09.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..