Під час встановлення розміру шрифтів у CSS я повинен використовувати відсоткове значення ( %
) або em
? Чи можете ви пояснити перевагу?
Під час встановлення розміру шрифтів у CSS я повинен використовувати відсоткове значення ( %
) або em
? Чи можете ви пояснити перевагу?
Відповіді:
Є дуже хороша стаття про веб-типографію на A List Apart .
Їх висновок:
Було показано, що розмір тексту та висоти рядків у ems із відсотком, визначеним на корпусі (та необов'язковий застереження для Safari 2), забезпечує точний текст із можливістю зміни розміру у всіх веб-переглядачах, які сьогодні використовуються. Це техніка, яку ви можете помістити в свою сумку для набору і використовувати як найкращу практику щодо розміщення тексту в CSS, що задовольняє і дизайнерів, і читачів.
line-heights
краще писати без будь-яких одиниць. Це дозволено специфікацією, і повністю уникає певних дійсно дратівливих примх браузера, коли мова йде про em
1
. Наприклад, iPhone 4 має фізичну ширину екрана 640 пікселів, але відображається як 320 "CSS" пікселів (DPR = 2). Тож веб-сайт не здається меншим!
З http://archivist.incutio.com/viewlist/css-discuss/1408
%: Деякі браузери не обробляють відсотки для розміру шрифту, але інтерпретують 150% як 150 пікселів. (Наприклад, деякі версії NN4.) IE також має проблеми з відсотками на вкладені елементи. Здається, IE використовує відсотки відносно вікна перегляду замість відносно батьківського елемента. Ще одна проблема (хоча і правильна відповідно до специфікацій W3C), в Moz / Ns6 ви не можете використовувати відсотки відносно елементів без заданої висоти / ширини.
em: Іноді браузери використовують неправильний розмір референсу, але відносні одиниці - це той, що має найменші проблеми. Ви можете вважати, що іноді трактується як px.
pt: сильно відрізняється між роздільною здатністю і не повинен використовуватися для відображення. Однак це досить безпечно для друку.
px: Єдина надійна абсолютна одиниця на екрані. Це може бути неправильно інтерпретовано в друку, хоча одна точка зазвичай складається з декількох пікселів, і, отже, все стає смішно мало.
Обидва регулюють розмір шрифту залежно від того, яким він був. 1,5ем - це те саме, що 150%. Єдиною перевагою, здається, є читабельність, вибирайте те, що вам найбільше подобається.
Справжня різниця стає очевидною, коли ви використовуєте її не для розміру шрифту. Установка padding
з 1em
не такий же , як 100%
. em
завжди відносно розміру шрифту. Але це %
може бути відносно розміру шрифту, ширини, висоти і, можливо, деяких інших речей, про які я не знаю.
З огляду на , що (майже?) Все браузери в даний час змінити розмір сторінки в цілому, а не тільки текст, попередні проблеми з px
проти %
проти em
з точки зору доступного зміни розміру шрифту досить спірне питання.
Отже, відповідь полягає в тому, що це, мабуть, не має значення. Використовуйте все, що працює для вас.
%
приємно, тому що дозволяє відносно змінити розмір.
px
приємно, тому що досить просто керувати очікуванням при його використанні.
em
може бути корисним, коли він також використовується для елементів компонування, оскільки може дозволити пропорційне розмір розмірів, пов'язаний з розміром тексту.
em
, наприклад. З іншого боку, я думаю, що відповіді на ТА повинні прагнути бути позачасовими - це все-таки база знань. Вікіпедія програмування :) Оскільки оновлення Вікіпедії відображається на фактах, так, на мою скромну думку, слід відповідати ТАК.
Щодо різниці між css одиницями %
та em
.
Наскільки я розумію (принаймні теоретично / концептуально, але, можливо, не так, як ці два одиниці можуть бути реалізовані в браузерах) ці два одиниці є рівнозначними, тобто якщо ви помножите свою em
величину на 100
і потім заміните em
на %
неї, має бути те саме?
Якщо насправді є якась реальна різниця між em та%, то хтось може це пояснити (або надати посилання на пояснення)?
(Я хотів додати цей мій коментар, куди він би належав, тобто з відступом трохи нижче відповіді, "Liam, answered Sep 25 '08 at 11:21"
оскільки я також хочу знати, чому його відповідь було знято, але я не міг зрозуміти, як розмістити свій коментар і тому довелося написати ця відповідь "глобальна нитка")
Як згадує Галландська мова, px є найнадійнішим для веб-типографії, оскільки все, що ви робите на сторінці, здебільшого викладається з посиланням на монітор комп’ютера. Проблема з абсолютними розмірами полягає в тому, що деякі веб-переглядачі (IE) не змінюють розмір піксельних елементів на веб-сторінці, тому при спробі збільшення / зменшення все коригується, крім цих елементів.
Я не знаю, чи IE8 справляється з цим належним чином, але всі інші постачальники браузерів обробляють пікселі просто чудово, і це все ще є меншості, коли користувачеві потрібно збільшити / зменшити текст (це текстове поле на SO, можливо, є винятком). Якщо ви хочете забруднитись, ви завжди можете додати функцію javascript, щоб збільшити розмір тексту та запропонувати користувачеві кнопку "маленької" / "більшої".
Бібліотека інтерфейсу користувача Yahoo ( http://developer.yahoo.com/yui/ ) має чудовий набір базових класів css, які використовуються для "скидання" конкретних налаштувань браузера, щоб основа для відображення сайту була однаковою для всіх (підтримується) браузери.
Для YUI слід використовувати відсотки.