Jump to content
  • 0

Когда в IE EM, он глух и нем...


SelenIT
 Share

Question

В общем, заурядная задача - сделать между абзацами с 11-пиксельным шрифтом 5-пиксельный отступ - превратилась в... интересную, когда понадобилось исправить пиксели на em-ы (угу, ради 6-го IE, чтоб ему... :).

5 на 11 нацело не делится, получается 0,(45). В FF3 и Опере 9 прекрасно работает округление до тысячных - margin: 0.455em 0. На целой странице в два экрана текста - ни пикселя расхождения. А вот в IE (пробовал на 8-м, в режиме 7-го и в новейшем) примерно каждый третий-четвертый абзац слипаются на пиксель ближе. Потому что (как показывают Developer Tools) реально используется значение отступа 0.45em - третий знак тупо отбрасывается. Если через хаки подставить 0.46em (округленное до двух знаков, но математически правильно), проблема становится меньше, но до конца не исчезает (каждый десятый-двенадцатый абзац все равно на пиксель ближе к соседу, чем надо). В остальных браузерах при 0.46em абзацы, наоборот, расползаются.

Проценты не подходят - для отступов они берутся от ширины контейнера, а не от шрифта. Задавать отступы в пикселях при масштабируемом шрифте - не комильфо как-то... Неужели нет способа приручить IE?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

А ежели использовать два разных стиля для отступов?

Типа:

p {
margin: 0.455em 0;
//margin: 0.5em 0;
}

Ну и пусть в ИЕ будут отступы побольше... сам виноват. А зачем, если не секрет, делать ради ИЕ6 вместо пикселей em-ы?

Link to comment
Share on other sites

  • 0

Сейчас так и делаю два разных стиля. Обидно, что проблема даже в IE8 RC1 не ушла... Но неужели в IE для этого случая не завалялось очередной порции магии навроде hasLayout? ;)

А размеры в em-ах понадобились потому, что IE6 - фактически последний из актуальных (пока еще, увы) браузеров, не умеющий масштабировать пиксельные шрифты. А заказчик требует, чтобы текст масштабировался везде...

Link to comment
Share on other sites

  • 0

Лишний раз убеждаюсь в калищности этого браузера... горбатого, как грится, могила исправит.

Вообще я вот у себя сейчас попробовал помасштабировать (CTRL+колесо мыши), правда не знаю, чего там шестерка по умолчанию из шрифтов юзает, но масштабировалось вроде...

А может еще попробовать яваскриптом отлавливать нажатие CTRL+"+" и CTRL+"-" и менять стили для параграфов.

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

Link to comment
Share on other sites

  • 0

Я имел в виду View - Text size (и там Largest, к примеру). В IE6 это влияет на шрифты без указания размера, с размерами в em, в %, даже в pt (что, имхо, абсурдно) - но не в пикселях. Другие браузеры (включая IE7) умеют либо масштабировать страницу целиком, вместе с графикой - как бы "растягивая" пиксели, либо масштабируют шрифты независимо от того, в чем указан их размер (FF2, Safari), либо и то и другое, на выбор юзера (FF3).

Использовать JS очень не хочется. Хотя мысль интересная... :)

Link to comment
Share on other sites

  • 0

Все-таки решение нашлось! Если тупо выдерживать цепочку значений, рассчитываемую вот этим EM-калькулятором, всё сходится, вроде как во всех браузерах. Моя ошибка была, стало быть, в том, что исходные 11px я задавал как 68.75%, а не 0.69em. О как. Но не зря я был уверен, что эта задача уже кем-то решена! :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy