Эмуляция min-width, max-width под IE6
11.5.2008 – Рубрика: HTML&CSS
Для многих не секрет что всеми любимый браузер Internet Explorer 6 не поддерживает CSS свойство min-width, max-width, min-height(подробней о min-height можно прочитать в заметке Особенности свойства height) которые позволяет сделать ограничения на размер блока.
Мне понравился вот такой простой способ фикса этого недостатка. Решение сводится к тому, что для ИЕ создается отдельный файл стилей, который экранируется условным комментарием и в него добавляется expression, который эмулирует свойство min-width.
width:expression(document.body.clientWidth < 770? "770px": "auto");
Для того, чтоб сэмулировать max-width нужно изменить знак неравенства на противоположный.
width:expression(document.body.clientWidth > 770? "770px": "auto");
Для эмуляции также есть другие варианты типа подключения JS файла, который рассчитывает ширину окна и подставляет необходимые величины в width, или эмуляция этого свойства путем создания дополнительных блок и стилей которые создают эффект min-width.
Лично мне вариант с expression кажется самым лучшим. Он избавляет от подключения JS скриптов. Учитывая, что под IE6 пишутся хаки почти при каждой верстке, это еще и позволяет добиться валидаци css и вытянуть все лишние элементы в отдельный файл, который будет видимый только для IE6
11 Отзывов to “Эмуляция min-width, max-width под IE6”
Оставить отзыв
Последние записи
- DATA:URL – Картинки в документе без дополнительных запросов к серверу
(Вторник, 09. 8. 2009 – 5 отзывов) - Как изменить внешний вид checkbox
(Вторник, 04. 28. 2009 – 21 отзывов) - Как сделать галерею товаров для интернет-магазина
(Пятница, 03. 13. 2009 – 5 отзывов) - Я.ру
(Воскресенье, 03. 8. 2009 – нет отзывов)
Ноябрь 6, 2008 в 13:03
B при некоторых обстоятельствах получаем вылет IE6 в трубу
(когда ставим минимальную ширину)
Ноябрь 6, 2008 в 14:03
на каждое движение мышки по странице или выполнение JavaScript–кода происходит пересчет expression.
Ноябрь 6, 2008 в 15:57
Это при каких? Я знаю что в IE под WinXP SP1 при ресайзе может быть подвисание, но у меня не всегда это происходило. Учитывая что на SP1 количество пользователей уменьшается на это можно пойти.
Ноябрь 6, 2008 в 22:26
а у меня карма к ИЕ не рсполагает
почти на всех машинках…постоянно вылетает на половине сайтов.
причем часто даже на свежеустановленной системке
использую в основном СП2
Ноябрь 27, 2008 в 12:10
> Он избавляет от подключения JS скриптов
бред, это тот же js, и при отключенных скриптах все развалится
Ноябрь 28, 2008 в 0:07
Это JS который идет в цсс, таким образом не подключаются лишние скрипты…
Декабрь 9, 2008 в 23:46
Пользуюсь {min-width: 1003px;max-width: 1400px;width:expression((document.compatMode && document.compatMode == ‘CSS1Compat’) ? (document.documentElement.clientWidth 1400 ? «1400px» : «auto»)) : (document.body.clientWidth 1400 ? «1400px» : «auto»)))}
Проблем не имел.
Январь 31, 2009 в 15:28
Немного исправлю Александра (ошибки со скобками)
{min-width: 1003px;max-width: 1400px;width:expression((document.compatMode && document.compatMode == ‘CSS1Compat’) ? (document.documentElement.clientWidth < 1400 ? “1400px” : “auto”) : (document.body.clientWidth < 1400 ? “1400px” : “auto”))}
Март 15, 2009 в 12:30
А вот еще для рассуждения)))
В каждый div которому нужно задать min-width добавлять например:
 
…
Март 15, 2009 в 12:34
эм)
В каждый div которому нужно задать min-width добавлять например:
{
 
…
}
Сентябрь 5, 2009 в 16:34
[...] Основная часть сайта жестко зафиксирована по ширине, что избавляет от необходимости задавать минимальную или максимальную ширину окна браузера(подробней о min-width и max-width можно прочитать в заметке Эмуляция min-width, max-width под IE6). [...]