Используя выражения в CSS-файле для Internet Explorer 6, можно добиться поведения, которое все нормальные браузеры уже давно умеют, а именно min-width и max-width свойства для блока:
#someblock{
width:expression(((document.documentElement.clientWidth ||↵
document.body.clientWidth) < 990) ? '990px' : ↵
((document.body.clientWidth > 1280) ? ‘1280px’ : ‘100%’));
}
Данная заметка является скорее чем-то вроде self-note, но вдруг будет полезна и вам.
P.S. Не забывайте выносить стили для IE в отдельные файлы с помощью Conditional Comments и будет вам счастье
Upd.:
После общения с uggallery в коментариях, было решено оптимизировать скрипт так, чтобы не использовать expressions, из-за которых частенько подвисает браузер. Вот что из этого получилось:
Так как скрипт нужен нам только для IE6, выделяем его с помощью Conditional Comments. Скрипт срабатывает на двух событиях - onload и onresize, что не обязательно:
<!--[if lte IE 6]>
<script type="text/javascript">
window.attachEvent(‘onload’, mmwidth);
window.attachEvent(‘onresize’, mmwidth);
function mmwidth(){
document.getElementById(‘wrap’).style.width = ↵
((document.documentElement.clientWidth || ↵
document.body.clientWidth) < 990) ? ‘190px’ :↵
((document.body.clientWidth > 1280) ? ‘1000px’ : ‘1000px’);
};
</script>
<![endif]-->
Все что нужно сделать - это подставить id нужного вам элемента, ну и конечно значения максимальной и минимальной ширины. document.body.clientWidth соответственно тоже меняйте по вкусу.
Скрипт на оригинальность не претендует, да по большому счету от expression и не отличается, просто вынесен из CSS. Знаете как сделать лучше? Нашли ошибку? Коментируйте.
За идею спасибо uggallery, за консультацию copyhold‘у.
Рабочий пример.
Вышло обновление для Интернет Эксплорера 7. В своем стремлении завоевать рынок Майкрософт отменил проверку Windows Genuine Advantage validation при установке браузера, что само по себе хорошо и указывает на желание мелкомягких охватить как можно большую часть рынка.
Теперь не нужно никаких ухищрений для установки IE7, только скачать и установить. Изменений в движке почти нет, и на сколько я понял, локализованые версии еще не проапдейтились.
Из минорных изменений:
- Меню теперь видно по дефолту
- Обновлен онлайн-тур для новичков и любопытствующих
- Изменен инсталятор .msi, изменение касается администраторов сетей.
Для тех, кто использует описаный мною способ установки IE6 и IE7 на одну машину одновременно нужно всего лишь положить скачаный дистрибутив в папку со всеми остальными файлами.
Выяснил для себя еще один способ отделения стилей для Интернет Эксплорера в одном и том же файле.
Все дело в том, что только Интернет Эксплорер прочтет свойства в файлах стилей, отмеченные с помощью двойного слэша ( // ).
Соответственно при описывании стиля для того или иного элемента нужно описать все свойства, а в конце дописать исправления для IE, выделив их двойным слэшем.
#some_block{
width: 130px; - Все браузеры
//width: 100px; - Интернет Эксплорер
}
Любой нормальный браузер игнорирует эти свойства, а Интернет Эксплорер прочтет и имплементирует.
Все довольны, стили для IE описаны, валидация CSS сохранена. Но никто не отменял вот это.
Столкнулся с очень неприятным моментом при создании формы. Проблема наблюдается только в Интернет Эксплорере 7. При нажатии на select вывод опций блокируется так, как будто это popup, хотя никакого popup там нет.
Складывается неприятная ситуация. Стрелками можно выбирать опции, а мышкой нельзя. Код валидный + CSS, Javascript’ом даже не пахнет. Проверил на других сайтах - то же самое.
А может это и не баг вовсе? Но если не баг, то хамство со стороны мелкомягких как минимум. На скриншоте все хорошо видно.
Пока даже не знаю в какую сторону смотреть. Никто не сталкивался с этим?
Upd. Пока что ничего кроме симпатичной картинки не нашел:

Upd. 2 Проблема оказалась в моем компьютере. Весь сыр-бор из-за того что на машине бегут 6 и 7 Интернет Эксплореры одновременно. И так как 7-ой IE в систему не установлен как положено, вот он и глючит.
Все вы наверняка знаете о мега-расширении для Файрфокс - Web developer toolbar. Помимо него существует похожее расширение для браузера Opera.
Но мало кто знает что существует аналог этого незаменимого (не побоюсь этого слова) для разработчиков решения для Интернет Эксплорера.
Читать дальше >>