Подтвердить что ты не робот

Вертикальное выравнивание шрифтов WebKit и Mozilla в поле

Glyphs in Box

Это тестовое изображение показывает, как сильно отличающийся текст Safari помещается внутри окна против Firefox (Safari 5.0.5 и Firefox 5.0.1 для Mac OS X X 10.6.7). Обратите внимание, как "S" для sans-serif закрывается до верхней части окна Firefox, а не Safari. Разница, похоже, меняется в зависимости от используемого шрифта, где некоторые из них даже последовательно отображаются.

Я читал люди, говорящие, что это из-за проблем округления между font-size и line-height (и фиксируется установкой меньшей высоты, чем размер), но Я думаю, что это опровергнуто моим примером, когда sans-serif/helvetica в Firefox всегда выравнивает вершину в поле.

Мне кажется, что Safari получает больше прав, чем Firefox, т.е. текст, как правило, больше вокруг средней линии.

Есть ли хороший способ сделать их более последовательными? Моя цель - это только браузеры, совместимые со стандартами.

  • NB1: Это не имеет ничего общего с vertical-align.
  • NB2: Я исследовал аналогичную проблему в прошлом без каких-либо вполне удовлетворительных результатов.

Мой тестовый код: http://jsbin.com/omaboc

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <style type="text/css">
            body {
              font-size: 50px;
              line-height: 1em;
            }
            div {
            background: #b5e260;
                margin-bottom: 5px;
              }
        </style>
    </head>
    <body>
        <div style="font-family: sans-serif">Some text @ this box</div>
        <div style="font-family: serif">Some text @ this box</div>
        <div style="font-family: arial">Some text @ this box</div>
        <div style="font-family: helvetica">Some text @ this box</div>
        <div style="font-family: courier">Some text @ this box</div>
        <div style="font-family: georgia">Some text @ this box</div>
    </body>
</html>
4b9b3361

Ответ 1

К сожалению, решения этой проблемы не существует. Текстовый рендеринг выполняется по-разному почти в каждом браузере, и даже между основными версиями браузера он иногда изменяется. В некоторых браузерах он определяется конкретными системами визуализации шрифтов и настройками ОС. Всегда были и всегда будут компромиссы для одного типа рендеринга шрифтов другому, и каждый из них будет меняться с различными типами дисплеев на разных типах оборудования.

Извините, вам придется жить с непиксельными совершенными шрифтами между браузерами, пока не будет монополизирован один браузер, одна ОС без доступных настроек отображения, один тип и размер монитора и один видеокарта. Другими словами, он никогда не будет идеально соответствовать пикселям, пока ваш сайт поддерживает несколько устройств, браузеры, дисплеи и т.д.

(Престижность для выполнения вашей домашней работы и тестирования сначала. Ваш вопрос был хорошо изучен и подумал, прежде чем спрашивать. Хотелось бы, чтобы мы могли дать вам лучший ответ после всей этой работы.)

Ответ 2

Вы пытались использовать Reset в верхней части своего файла таблицы стилей?

Цель таблицы стилей Reset заключается в уменьшении несогласованности браузера в таких вещах, как высоты строк по умолчанию, поля и размеры шрифтов заголовков и т.д.

Вы можете найти объяснение и код здесь: http://meyerweb.com/eric/tools/css/reset/

Надеюсь, это поможет вам!