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

Глифы в коробке

Это тестовое изображение показывает, насколько сильно Safari позиционирует текст внутри поля по сравнению с Firefox (Safari 5.0.5 и Firefox 5.0.1 для Mac OS 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>

person Martin Algesten    schedule 14.07.2011    source источник
comment
Та же проблема не возникает в Windows 7, см.: i.stack.imgur.com/xQmTe. gif   -  person thirtydot    schedule 14.07.2011
comment
Захватывающе. Сюжет закручивается! +1 за GIF-анимацию ;)   -  person Martin Algesten    schedule 14.07.2011
comment
Ознакомьтесь с принятым ответом на этот щенок: stackoverflow.com/questions/7155174/   -  person skybondsor    schedule 30.08.2011
comment
это полный мусор, и его невозможно спроектировать. я чувствую твою боль   -  person brittohalloran    schedule 11.11.2011
comment
У меня была та же проблема jsfiddle.net/y5ofqfn7/1, разница в позициях между firefox и safari составляла 7 пикселей.   -  person jvilhena    schedule 28.01.2016


Ответы (2)


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

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

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

person Jon Adams    schedule 28.09.2011

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

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

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

Я надеюсь, что это поможет вам!

person Orangejuice    schedule 15.07.2011
comment
Да, спасибо. Я действительно пробовал сброс Мейера, но безуспешно. - person Martin Algesten; 17.07.2011