4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
Откуда: Москва Всего сообщений: 2994 Рейтинг пользователя: 79 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | Сообщить модератору | ИгнорироватьNEW! Сообщение отправлено: 8 мая 2007 22:53 Сообщение отредактировано: 8 мая 2007 22:53
Как известно, Internet Explorer не поддерживает ряд стандартных CSS-свойств (в том числе и очень часто требующееся свойство min-width), но зато содержит ряд возможностей, которые позволяют компенсировать этот недостаток, но при этом нарушают стандарты CSS (например, так называемые expressions). Оффтопик: Я придерживаюсь позиции строгого соблюдения стандартов.
Но существует способ сверстать валидный код, не нарушая ни стандартов HTML, ни стандартов CSS. Для этого в IE предусмотрены так называемые условные комментарии — конструкции вида
<!--[if lt ie номер_версии]>
....
<![endif]-->
С помощью них проблема с min-width решается следующим образом: в CSS-файле пишем код для нормальных броузеров (bd — это id div-тега, для которого требуется задать минимальную ширину):
#bd { min-width: 780px }
В HTML-шаблоне в секции HEAD после подключения CSS-файла в блок условного комментария помещаем тег style, в котором задаем ширину с помощью expression:
<link rel="stylesheet" type="text/css" href="tradition.css" />
<!--[if lt ie 7.0]>
<style type="text/css">
#bd { width:expression((document.documentElement.clientWidth
|| document.body.clientWidth) < 780? "780px" : "auto"); }
</style>
<![endif]-->
Для всех броузеров, кроме MSIE версий ниже 7.0, а также для валидатора тег style будет не виден (так как с их точки зрения он находится внутри комментария), поэтому нарушения стандартов не произойдет.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
|