Увеличение и уменьшение означает разные вещи в разных браузерах.Например, на FF, вы можете увеличить «только текст».Когда функция масштабирования влияет на размер текста, элементы div с абсолютными позициями портятся, как вы видели.
Эту проблему можно решить, сделав страницу "эластичной".Вместо использования пикселей вы определяете координаты и измерения в единицах «em».Em равен стандартному размеру текста браузера, который обычно составляет 16px.Чтобы упростить жизнь, сбросьте em до 10px, добавив в таблицу стилей следующее:
body {
font-size: 62.5%;
}
Если приведенный выше код есть в вашей таблице стилей, вы можете легко преобразовать пиксели в em, разделив значение каждого пикселя на10. Например, используя приведенный выше код:
margin:.2em 0 0 4.5em;
padding:6.5em 45.6em 0 5.6em;
width:13.7em;
height:19em;
Это должно решить проблему масштабирования, а также позволить людям изменять размер текста при просмотре вашей страницы.Это не будет работать для ваших спрайтов, и вы все равно можете столкнуться с пересекающимися проблемами.Если это станет грязным, вам, возможно, придется подумать об изменении вашего подхода к макету.Если вы испытываете частичное совпадение, я бы посоветовал вам использовать overflow:hidden
на всех ваших делениях и указать max-height
и max-width
, где это необходимо.
Если вам нужно узнать больше о ems и эластичном дизайне, вотхороший учебник: http://jontangerine.com/log/2007/09/the-incredible-em-and-elastic-layouts-with-css
А вот ссылка W3 на максимальную высоту: http://www.w3schools.com/Css/pr_dim_max-height.asp