»Статьи - Веб-Дизайн - CSS/ изменение стилей в зависимости от "глубины цвета" »https://artwedis.com/page.php?id=350 |
Автор: Отправлено: 04.11.2008 11:45 |
На данный момент я знаю только один случай, когда определение "глубины" цвета может сыграть полезную нам роль - развлечение с фильтром Альфа и использование его для создания градиентных заливок. Напомню - фильтр Альфа позволяет установить уровень прозрачности для обьектов в броузере Эксплорер, устанавливая градиентную прозрачность для одной ячейки мы получаем плавный переход от цвета ячейки к цвету фона под ней. При некотором старании можно направить изменение под нужным нам углом - по диагонали, например. Один минус - вся полнота эффекта проявляется только на мониторе с 32битами на пиксел. Такие мониторы еще не у всех есть, а на мониторах с меньшей глубиной цвета наш градиент преобритает очень неприятную "полосатость". В Нетскейпе данный фильтр нам проблем не создает - он просто отсутствует. Определить глубину цвета, установленного на мониторе мы можем через свойство screen.colorDepth. <br /> <br /> <!-- <br /> if(screen.colorDepth <32)<br /> {<br /> document.writeln('\n'+ <br /> '#ff {color: red}\n'+<br /> '')<br /> }<br /> else<br /> {<br /> document.writeln('\n'+ <br /> '#ff {color: blue}\n'+<br /> '')<br /> }<br /> //--> <br /> <br /> Все очень прото - если глубина цвета меньше 32бит на пиксел, мы получаем одно описание стиля, если 32, то другое. Проверил и в Эксплорере и в Нетскейпах - все вполне надежно работает, можно использовать. В данном примере обьект с id=ff - наш подопытный. В зависимости от глубины цвета он окрашивается либо в красный, либо в синий цвет. Осталось только вставить в скрипт описание фильтра, и мы получаем эффект градиентной заливки в Эксплорере без использования графических файлов. При "неблагоприятных" условиях используется альтернативное описание стиля обьекта. |