Использование em для макета приводит к несогласованности в разных браузерах
Я пытаюсь создать сайт с использованием эластичного макета. Я использовал сброс CSS Эрика Мейера, а также использовал body {font-size:62.5%}
в моей таблице стилей.
РЕДАКТИРОВАТЬ: Вот моя структура HTML и CSS
<html>
<head>
</head>
<body>
<div id="container">
<div id="gallery">
</div>
<div id="other">
</div>
</div>
<div id="footer">
</div>
</body>
</html>
`html {bacgroound: url () фиксированный верхний центр без повтора;}
body {font-family:Arial, Helvetica, sans-serif;
color:#000;
margin:auto;}
'id'other {background-color:color1;}
'id'footer {background-color:color2;}
`
Как вы можете видеть, если я установил фиксированную ширину для body
, background
за #other
а также #footer
остаются неизменными. Поэтому я попытался обойти это, установив width
в 100%
и используя margin: 0 8em 0 8em
центрировать галерею и содержание #other
а также #footer
,
Макет, который я пытаюсь достичь, в основном состоит из одной колонки, содержащей галерею изображений. Вся галерея должна быть в центре страницы. я использовал em
для определения margin
и это вызывает разные результаты в разных браузерах. Если галерея сосредоточена в одном браузере, другие браузеры показывают другой результат. Я пробовал Firefox, Chrome и IE9.
Есть ли способ создать одинаковые макеты, используя em
как единица измерения? Или я должен попробовать фиксированный макет и использовать px
вместо em
?
2 ответа
Ваша несостоятельность - это сочетание вещей. Определение вашего body {font-size: 62.5%}
говорит браузеру отображать шрифт на 62,5% от его базового размера шрифта (который контролируется пользователем и даже изменяется для каждого шрифта). Затем, используя em
позже в каскаде css снова применяется коэффициент масштабирования, основанный на только что определенном размере шрифта (это масштабирование сложнее определить: см. http://webdesign.about.com/od/fonts/qt/em-origins.htm). Таким образом, шрифт браузера установлен на 14px
станет 8.75px
(14 * .625), который (для иллюстрации) в 2em
теоретически может быть 17.5px
(8,75 * 2). Если бы в браузере был шрифт 16px по умолчанию, то эти два числа были бы 10px
и теоретически 20px
,
Итак, чтобы помочь с несогласованностью в использовании em
единицы, настройка px
значение и универсально узнаваемый шрифт на body
тег (или стандартные веб-шрифты или, возможно, @font-face
) поможет стандартизировать em
единичные значения ниже в каскаде CSS.
Ответ Джейсона МакКрири хорош, если у вас есть контейнер с "фиксированной шириной", но если вы хотите "исправить размер поля", тогда ваша текущая идея установить px
или же em
Единица для ваших полей просто отлично подходит для центрирования.