Шрифт відображається по-різному в Firefox проти Chrome


14

Здається, що мій рядок меню в Firefox відображається з іншим розтяжкою шрифту, ніж у Chrome. Дивіться наступне:

різний шрифт розтягнути

Ось CSS, застосований до цього елемента:

font-variant: small-caps;
font-size:13px;
letter-spacing: 0px;
font-family: Arial;
font-stretch: normal;
text-decoration: none;

Наскільки я можу сказати, все щодо цього шрифту точно таке ж, але вони все ще відображаються по-різному (див. Рис.). Чому?


1
Ви спочатку скинули CSS?
kei

@kei: Скидання, схоже, не дасть ефекту
Горо

Цікаво. Я отримую той самий результат, що і ваше зображення: jsfiddle.net/YGwcn Схоже, зводиться до того, як кожен браузер інтерпретує стиль.
kei

Відповіді:


14

Chrome використовує механізм візуалізації WebKit. Firefox використовує двигун Gecko. І інтерпретація, і відображення відображаються дещо по-різному, як і графічні двигуни DirectX і Vega, які використовуються в IE9 + та Opera.

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

  1. Використовуйте зображення або SVG замість типу для елементів навігаційної панелі. Це може виявитися корисним, якщо ваша навігаційна область навряд чи часто змінюється. наприклад, www.apple.com

  2. Зафіксуйте ширину кожного елемента навігації за допомогою CSS. Розмір тексту все одно буде виглядати по-різному між браузерами, але якщо надати кожному <li>елементу в області навігації фіксовану ширину пікселів, обмежувальне поле кожного посилання буде дуже схожим у веб-переглядачах, а загальна ширина області наві повинна бути однаковою.


5
Ви повинні бути обережними з такими речами, як "Використовуйте зображення замість типу для елементів навігаційної панелі". Зображення виглядатимуть жахливо на нових верстатах з високою роздільною здатністю (наприклад, дисплеї Apple "Retina", на деяких інших смартфонах), якщо ви також не надаєте копію подвійної роздільної здатності.
Оллі Ходжсон

@OllyHodgson Звичайно. Подвійні розміри PNG або SVG (саме те, що використовує Apple для навігації) були б найкращими для екранів з високою роздільною здатністю.
Нік

@Nick - Так, SVG було б найкращим рішенням.
m93a

Не в цьому випадку цього не було б. Firefox не підтримує letter-spacingелементи SVG.
Yay295

@ Yay295 Шрифти можна виділити в SVG.
Нік

5

Різниці у візуалізації шрифту між різними браузерами (і в різних операційних системах) - факт життя. Вам просто потрібно переконатися, що якщо шрифт відображатиметься з різною шириною, ваш дизайн все ще може впоратися.


2

Якщо хтось стикається з цим, для мене проблема була letter-spacing. Chrome і Firefox по-різному обробляють властивість.

Моєю проблемою було те, letter-spacingщо впливало на положення інших елементів; зокрема деякі зображення в меню навігації. Видаляючи майно, моя проблема була негайно вирішена.

Я також читав, що конкретно використання .pointзначень може мати зміни між двома браузерами, що було істинно в моєму випадку.



0

Я виявив, що webkit підтримуватиме px для розміру шрифту, але для таких речей, як інтервал між літерами, вони ігнорують це все разом, якщо ви не використовуєте em.


0

Після тестування 6 браузерів / 4 рендеринга на двох ОС. Я знайшов, що більшість були однакові навіть з міжрядковим інтервалом. Я вивчу різницю з Windows і Linux за хвилину.

Я подумав, що шрифт Palatino доступний скрізь, але хром повернувся до романських часів, дещо менше, шрифти за замовчуванням мали ті самі результати (хромовані різні), які мене трохи ввели в оману.

У будь-якому випадку, якщо ви вкажете римські часи або використовуєте @fontface для подачі файлів шрифту! ви, можливо, зможете зробити свої навігаційні смуги блискучішими ;-)


0

У мене була подібна проблема і знайшлося рішення:

Використання:

font-family: 'Donegal One', serif;
font-variant: small-caps;
text-rendering: optimizeLegibility;

У Firefox це чудово виглядає. У Chrome розклад літер був дивним. Видалення optimizelegibilityстилю зробило трюк. Обидва браузери зараз відображаються однаково.

Я вирішив видалити стиль для веб-сайту і залишити його на місці для інших браузерів. Зараз добре виглядає.


0

У мене була схожа проблема з Open-Sans, це зробило це для мене:

-webkit-font-smoothing: subpixel-antialiased;
font-smoothing: subpixel-antialiased;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.