WebKit против Mozilla вертикальное выравнивание глифов шрифта в коробке - PullRequest
14 голосов
/ 14 июля 2011

Glyphs in Box

Это тестовое изображение показывает, насколько сильно 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, то есть текст, как правило, больше в средней линии.

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

Мой тестовый код: 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>

Ответы [ 2 ]

3 голосов
/ 28 сентября 2011

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

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

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

1 голос
/ 15 июля 2011

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

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

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

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

...