Метод постепенного улучшения с CSS3: Поддержка современных браузеров. Пришло время переосмыслить вендорные префиксы в CSS Приемы постепенной деградации css

Я смущен тем, что разница между Постепенное Повышение и Изящные Деградации . Мне кажется, это одно и то же.

не могли бы вы объяснить мне разницу между двумя и в какой ситуации я бы использовать один над другим?

8 ответов

Они почти то же самое, но они отличаются в контексте.

существует класс браузеров под названием "браузеры класса A". Это ваши типичные члены аудитории,которые (вероятно) составляют большинство ваших посетителей. Вы начнете с базового уровня этих пользователей. Назовем это лучшие современные практики .

Если вы хотите увеличить опыт для тех, кто случайно использует FF3.6 или Safari 4 или какой-то другой разработчик whizbang nightly webkit whathaveyou, вы хотите сделать удивительные вещи, как

  • закругленные углы через css
  • затененный текст (но, пожалуйста, Боже, не слишком много)
  • drop shadows (см. выше в скобках)

Это делает ваш сайт пипец ищет, но не сломает его. Это постепенное повышение . Охватывая будущее с точки зрения лучшие практики .

с другой стороны, ваш нишевый сайт Nintendo привлекает достаточное количество пользователей IE5. Бедный ты, но ты также хочешь убедиться, что они продолжают возвращаться. Вы можете предоставить альтернативу вашему поведению ajax, включив сценарий ajax во внешний файл, и если их JS не включен, возможно, Ваши ссылки обновляют всю страницу. Так далее. С точки зрения лучшие современные практики , вы убедитесь, что некоторые исторические рынки обслуживаются некоторое подобие функционального сайта . Это изящный деградация .

Они в основном идентичны, но отличаются с точки зрения приоритета для многих команд разработчиков: PE довольно приятно, если у вас есть время, но GD часто необходимые

Если ваш сайт выглядит одинаково хорошо во всех браузерах, но некоторые браузеры получают, скажем, танцующих пони, потому что они поддерживают танцующих пони, то это прогрессивное улучшение. Он работает во всех браузерах, но некоторые браузеры получают что-то дополнительное. Обычно этот термин применяется к определенным функциям Javascript, которые могут повысить удобство использования за пределами "raw HTML".

Если ваш сайт выглядит только так, как вы собираетесь в браузерах, которые полностью поддерживают, скажем, CSS3 и IE8-отобразит ту же страницу без, скажем, закругленных углов, тогда это изящная деградация. Сайт действительно предназначен для современных браузеров, но он по-прежнему используется в старых браузерах, просто не так причудливо.

в конце концов, они действительно одно и то же, рассматриваемое с двух разных точек зрения.

направление от выбранного базовый для каждого понятия разные.

изящная деградация начинается на идеальном уровне пользовательского опыта и уменьшается в зависимости от возможностей агента пользователя до минимального уровня, обслуживая агентов, которые не поддерживают определенные функции, используемые базовой линией.

прогрессивное повышение начинает на широком минимальном опыте потребителя и увеличивает в зависимости от возможностей агента потребителя до более способного уровня, поставляя еду для агентов, поддерживающих более продвинутые функции, чем базовые.

Я думаю, что можно было бы использовать обе концепции, если позволит время/бюджет. Если нет, то предпочтительнее изящная деградация.

Извините, что воскрешаю что-то, что старше года, но чувствовал, что могу внести свой вклад, в некотором роде, мое собственное мнение по этому вопросу.

хотя я согласен с Алексом Mcp и deceze в некотором роде, термины "изящная деградация" и "прогрессивное улучшение" имеют несколько иное значение, чем я стою.

изящные деградации , много времени (на мой взгляд), кажется, больше палки, чтобы бить приложение в представлении после того, как это был построен плохо в первую очередь в моем опыте. Как кто-то строит какой-то огромный объект javascript, который предоставляет пользователю что-то действительно классное, чтобы играть, пока не придет менеджер, проверяет вещь, и все бегут кричать, бросая руки, когда дело доходит до их внимания, что их приложение не работает в 35% браузеров. "кто-то лучше предусмотреть запасной вариант для этого."

Постепенное Повышение хотя (и это такой хороший термин, чтобы сказать тоже), казалось бы, больше о создании чего-то, что просто работает, на начальном уровне, везде, с помощью самых основных доступных методов, чтобы обеспечить всю функциональность, которая нужна пользователю. Затем это можно добавить с помощью аккуратных маленьких ненавязчивых помощников, укладки и т. д. это фактически улучшает пользовательский опыт рассматриваемого приложения, а не просто делает его едва пригодным для использования. ", что выглядит круто. Работает ли он в IE6. О да. Он Делает"

Я думаю, может быть, давая стиль в качестве примера обоих терминов в двух лучших ответах здесь вид упускает реальную основную проблему юзабилити, что постепенное повышение часто решает по своей природе, где изящные деградации игнорирует, пока все не пойдет не так.

Тирада закончилась...

изящная деградация-это практика создания веб-функциональности, чтобы она обеспечивала определенный уровень пользовательского опыта в более современных браузерах, но она также будет изящно деградировать до более низкого уровня пользователя в старых браузерах. Этот нижний уровень не так приятно использовать для посетителей вашего сайта, но он по-прежнему предоставляет им основную функциональность, которую они пришли на ваш сайт, чтобы использовать; вещи не ломаются для них.

прогрессивное повышение похож, но все происходит наоборот. Вы начинаете с установления базового уровня пользовательского опыта, который все браузеры смогут предоставить при рендеринге вашего веб-сайта, но вы также создаете более расширенную функциональность, которая автоматически будет доступна браузерам, которые могут ее использовать.

другими словами, изящная деградация начинается с статус-кво сложности и пытается исправить для меньшего опыта, тогда как прогрессивное улучшение начинается с очень основного, рабочего примера и учитывает постоянн расширение для будущих окружающих сред. Унижать грациозно значит смотреть назад тогда как увеличивать прогрессивно значит смотреть вперед пока держащ ваши ноги на твердой земле.

Изящные Деградации

изящные деградации способность компьютера, машины, электронной система или сеть для поддержания ограниченной функциональности даже когда большой часть его разрушена или выведена из строя. Цель грациозная деградация должна предотвратить катастрофический провал.

изящная деградация-одно из решений. Это практика создания веб-сайта или приложения, поэтому он обеспечивает хороший уровень пользовательского опыта в современных браузерах. Однако, это ухудшить изящно на старых браузеров. Система может быть не такой приятной или красивой, но основная функциональность будет работать на старых системах.

простой пример-использование 24-битных Альфа-прозрачных PNGs. Эти изображения могут быть отображены в современных браузерах без проблем. IE5.5 и IE6 покажут изображение, но Эффекты прозрачности не сработают (при необходимости его можно заставить работать). Старые браузеры, которые делают не поддержка PNG покажет текст alt или пустое пространство.

разработчики, принимающие изящную деградацию, часто указывают свой уровень поддержки браузера, например, браузеры уровня 1 (лучший опыт) и браузеры уровня 2 (деградированный опыт).

Постепенное Повышение

постепенное повышение это стратегия веб-дизайна, которая подчеркивает доступность, семантическая разметка HTML и внешние таблицы стилей и скриптовые технологии. Прогрессивный улучшение использует веб-технологии в многоуровневом режиме, который позволяет каждому получить доступ к базовому контенту и функциональность веб-страницы, используя любой браузер или интернет связи, а также предоставление расширенной версии страницы те, с более продвинутым программным обеспечением браузера или большей пропускной способностью.

прогрессивное повышение подобно концепции к грациозно ухудшению но в обратном. Веб-сайт или приложение будет устанавливать базовый уровень пользовательского опыта для большинство браузеров. Более расширенная функциональность будет добавлена, когда браузер поддерживает его.

прогрессивное улучшение не требует от нас выбора поддерживаемых браузеров или возврата к макетам на основе таблиц. Мы выбираем уровень технологии, т. е. браузер должен поддерживать HTML 4.01 и стандартные запросы/ответы на страницы.

вернемся к нашему примеру изображение, мы можем решить, что наше приложение должно работать во всех графических браузерах. Мы могли бы использовать более низкое качество GIF изображения по умолчанию, но заменяют их 24-битными png, когда браузер поддерживает их.

ссылки

Википедия: Постепенное Повышение и

Оглавление:

Префикс -webkit- доминирует в CSS настолько, что некоторые сайты без него работают неправильно. Это свидетельствует о следовании разработчиков не самым лучшим практикам в последние годы и это привело к неудачному, но практически вынужденному решению со стороны Mozilla. В Firefox версии 46 или 47 (это апрель или май 2016 года), Mozilla планирует реализовать поддержку нестандартных префиксов -webkit- , чтобы улучшить совместимость Firefox с сайтами, активно использующими -webkit (как правило, это сайты, ориентированные на мобильные устройства).

Тем не менее, разработчики применяют префиксы, чтобы использовать новейшие возможности браузеров максимально быстро. Префиксы вызвали беспорядок с доминированием WebKit, но они же заставили веб двигаться вперед ускоренными темпами.

Подход Mozilla и Microsoft безопасен для большинства сайтов. На многих сайтах будет использоваться префикс -moz- или же не потребуется никаких действий для совместимости с будущим обновлением Firefox. Но как профессиональные веб-разработчики, мы должны тщательно рассмотреть и понять, какие последствия это повлечет. Вы наверняка знаете, какие из ваших сайтов могут пострадать от этого обновления.

Итак, пришло время переосмыслить подход к префиксам и протестировать сайты с ними.

Поддерживаемые префиксы

Есть целый ряд префиксов -webkit- , которые Mozilla может реализовать. Исходя тех данных, что я собрал, Mozilla не стремится к совпадению своего списка поддерживаемых префиксных свойств со списком Edge, так как не все из них нужны для совместимости движка раскладки.

Разработчики Firefox также близки к аналогичному подходу:

Текущий тренд в Mozilla это избегание вендорных префиксов за счет отключения не готовых свойств и использовании непрефиксной версии при достаточной стабильности. Это общая политика: в отдельных случаях возможны исключения - Борис из Mozilla

Microsoft Edge также собирается отказаться от вендорных префиксов:

“Microsoft также собирается отказаться от вендорных префиксов в Edge. Это значит, что разработчики, которые стремятся использовать специфичные возможности HTML и CSS не будут использовать специфичный префикс для Edge. Вместо этого они будут просто писать код в соответствии со стандартами” - Mashable

Постепенной деградации, основанной на префиксах больше не будет

Этот уход от вендорных префиксов означает одну вещь - постепенная деградация с помощью вендорных префиксов не имеет перспектив.

Использование вендорных префиксов для применения стилей для конкретного браузера (например, только для Chrome) не являлось целью их введения; рекомендацией для разработчиков всегда было использование всех префиксов (от -webkit- до -o-). Если вы используете возможности, которые зависят от префиксных свойств и используете префиксы для постепенной деградации вашего дизайна в других браузерах, то это больше не работает.

Заключение

Времена меняются. Доминирование WebKit невольно повлекло проблемы с несовместимостью, что заставляет производителей остальных браузеров реализовывать префиксы -webkit- . Эта проблема исчерпает себя по мере отказа производителей браузеров от вендорных префиксов, но пока разработчики должны проверять, что префиксы не вызовут неожиданных результатов в не-WebKit браузерах.

Индустрия веб-дизайна постоянно меняется, отчасти потому, что веб-браузеры и устройства постоянно меняются. Поскольку работа, которую мы выполняем как веб-дизайнеры и разработчики, просматривается через веб-браузер, наша работа всегда будет иметь симбиотические отношения с этим программным обеспечением.

Изменения в веб-браузерах

Одна из проблем, с которой всегда сталкивались дизайнеры и разработчики веб-сайтов, - это не только изменения в веб-браузерах, но и ряд различных веб-браузеров, которые будут использоваться для доступа к их веб-сайтам. Было бы замечательно, если бы все посетители сайта использовали новейшее и лучшее программное обеспечение, но это никогда не имело место (и, вероятно, никогда не будет).

Некоторые посетители ваших сайтов будут просматривать веб-страницы с очень устаревшими браузерами и отсутствующими функциями более современных браузеров. Например, более старые версии браузера Microsoft Internet Explorer уже давно стали проблемой для многих веб-профессионалов. Несмотря на то, что компания отказалась от поддержки некоторых из своих самых старых браузеров, все еще есть люди, которые будут ими пользоваться - люди, с которыми вы, возможно, захотите иметь дело и общаться с ними.

Определение «изящной деградации»

Реальность такова, что люди, которые используют эти устаревшие веб-браузеры, часто даже не знают, что у них устаревшее программное обеспечение или что их работа в Интернете может быть скомпрометирована из-за их выбора программного обеспечения. Для них этот устаревший браузер - это просто то, что они давно используют для доступа к веб-сайтам. С точки зрения веб-разработчиков, мы хотим быть уверенными в том, что сможем предоставить этим клиентам полезный опыт, а также создавать веб-сайты, которые прекрасно работают в более современных, многофункциональных браузерах и устройствах, доступных сегодня.

«Изящная деградация» - это стратегия обработки дизайна веб-страниц для различных браузеров, как старых, так и новых.

Начиная с современных браузеров

Дизайн веб-сайта, созданный для постепенного ухудшения качества, разрабатывается в первую очередь с учетом современных браузеров. Этот сайт создан с целью использования возможностей этих современных веб-браузеров, многие из которых «автоматически обновляются», чтобы люди всегда использовали последнюю версию. Тем не менее, веб-сайты, которые изящно деградируют, также работают эффективно для старых браузеров. Когда эти старые, менее функциональные браузеры просматривают сайт, он должен ухудшаться, пока он все еще функционирует, но, возможно, с меньшим количеством функций или других визуальных элементов отображения. Хотя эта концепция предоставления менее функционального или не очень привлекательного сайта может показаться вам странной, правда в том, что люди даже не узнают, что они пропали без вести. Они не будут сравнивать сайт, который они видят, с «лучшей версией», так что, пока сайт работает на то, что им нужно, и, по-видимому, не сломан ни функционально, ни визуально, вы будете в хорошей форме.

Прогрессивное улучшение

Концепция постепенной деградации во многом похожа на другую концепцию веб-дизайна, о которой вы, возможно, слышали - прогрессивное улучшение. Основное различие между стратегией постепенного ухудшения и прогрессивным улучшением заключается в том, где вы начинаете свой дизайн. Если вы начинаете с наименьшего общего знаменателя, а затем добавляете функции для более современных браузеров для своих веб-страниц, вы используете прогрессивное улучшение. Если вы начнете с самых современных, передовых функций, а затем уменьшите масштаб, вы будете использовать постепенную деградацию. В конце концов, созданный в результате веб-сайт, вероятно, предоставит такой же опыт, независимо от того, используете ли вы прогрессивное улучшение или постепенную деградацию. Реально, смысл любого из подходов состоит в том, чтобы создать сайт, который отлично работает для современных браузеров, и в то же время предоставляет удобный опыт для старых веб-браузеров и клиентов, которые продолжают их использовать.

Изящная деградация не означает, что вы говорите своим читателям: «Загрузите самый последний браузер»

Одна из причин, по которой многим современным дизайнерам не нравится подход изящной деградации, заключается в том, что он часто превращается в требование, чтобы читатели загружали самый современный браузер для работы страницы. Это не грациозная деградация. Если вам захочется написать «загрузите браузер X, чтобы эта функция заработала», вы покинете область постепенного ухудшения и перейдете к дизайну, ориентированному на браузер. Да, несомненно, полезно помочь посетителю веб-сайта перейти на более качественный браузер, но об этом часто приходится спрашивать (помните, что многие люди не понимают, как загружать новые браузеры, и ваше требование сделать это может просто напугать). их прочь). Если вы действительно хотите, чтобы их бизнес велел им сказать, что они покидают ваш сайт, чтобы загружать более качественное программное обеспечение, вряд ли это будет возможным. Если ваш сайт не обладает ключевой функциональностью, для которой требуется определенная версия браузера или выше, принудительное скачивание часто нарушает условия взаимодействия с пользователем, и его следует избегать.

Хорошее эмпирическое правило - следовать тем же правилам для постепенного ухудшения, что и для прогрессивного улучшения:

  • Написать действительный, соответствующий стандартам HTML
  • Используйте внешние таблицы стилей для вашего дизайна и макета
  • Используйте внешне связанные скрипты для интерактивности
  • Убедитесь, что контент доступен даже для браузеров низкого уровня без CSS или JavaScript

Имея в виду этот процесс, вы можете выйти и создать самый современный дизайн, какой только сможете! Просто убедитесь, что он работает в менее функциональных браузерах, все еще работая.

Как далеко назад нужно идти?

Один вопрос, который возникает у многих веб-разработчиков, заключается в том, насколько далеко вы должны поддерживать браузерные версии. На этот вопрос нет точного и сухого ответа. Это зависит от самого сайта. Если вы просмотрите аналитику трафика на сайте, вы увидите, какие браузеры используются для посещения этого сайта. Если вы видите значительный процент людей, использующих определенный более старый браузер, то вы, вероятно, захотите поддержать этот браузер или рискуете потерять этот бизнес. Если вы посмотрите на свою аналитику и увидите, что никто не использует более старую версию браузера, вы, вероятно, можете принять решение не беспокоиться о полной поддержке этого устаревшего браузера и его тестировании. Таким образом, реальный ответ на вопрос о том, как далеко назад ваш сайт нуждается в поддержке, - «как бы далеко назад ваши аналитики ни говорили вам, что ваши клиенты используют».

Под редакцией Джереми Жирар.

Конечно, Internet Explorer содержит большое количество ошибок в разных версиях, но с помощью условных комментариев с ними можно бороться, добиваясь их устранения. Но вот чего нельзя ничем исправить, так это то, что IE безнадёжно устарел. Пока остальные браузеры включают всё больше свойств CSS3, поддерживают различные новомодные технологии, IE топчется на месте. Выход IE9 не решит проблему, предыдущие версии от этого в одночасье не испарятся. В такой ситуации наилучшим решением будет изящная деградация (graceful degradation) - принцип сохранения работоспособности при потере части функциональности.

Давайте разберём этот приём на небольшом примере, в котором выводится текст в блоке и кнопка. У блока и кнопки заданы скруглённые уголки, к блоку также добавляется небольшая тень. Пока браузеры для CSS3 применяют преимущественно специфические свойства со своими префиксами:

  • Firefox - свойства, начинающиеся с -moz-;
  • Safari и Chrome - свойства, начинающиеся с -webkit-;
  • Opera - свойства, начинающиеся с -o-.

Разные версии этих браузеров могут понимать некоторые свойства как с префиксом, так и без него, поэтому для универсальности добавляют одновременно несколько свойств сразу. Так, для создания скруглённых уголков нам потребуется следующий стиль.

Moz-border-radius: 10px; /* Для Firefox */ -webkit-border-radius: 10px; /* Для Safari и Chrome */ border-radius: 10px; /* Для Opera и IE9 */

Хотя применение этих свойств приведёт к невалидному коду CSS, в данном случае важнее работа в браузерах Firefox 1.0, Safari 3.1, Chrome 2.0, Opera 10.50, IE9, а также в их старших версиях. В примере 1 показано использование свойств CSS3 для создания тени и скруглённых уголков.

Пример 1. Блок с тенью

XHTML 1.0 CSS 2.1 CSS3 IE 8 IE 9+ Cr Op Sa Fx

Блок

Вам необходимо пройти 20 вопросов, которые в случайном порядке выбираются из базы данных. Для прохождения теста достаточно правильно ответить не менее чем на 75% предложенных вопросов (15 и более вопросов).

Результат примера продемонстрирован на рис. 1.

Рис. 1. Вид блока в Safari

Тот же пример в браузере IE8 и ниже представлен на рис. 2.

Рис. 2. Вид блока в IE8

Хотя вид элементов различается в деталях, сохраняется работоспособность страницы в целом. На кнопку можно нажать, текст остался прежним, включая его цвет и фон, ошибок отображения нет. Фактически, разница только в мелочах, которые выполняют декоративные, а не прикладные функции. Все принципы изящной деградации выполнены.

Что даёт на практике этот подход?

  • Позволяет активно использовать декоративные свойства CSS3 без оглядки на браузер.
  • Мотивирует применять различные эффекты CSS3.
  • Существенно облегчает жизнь разработчика, так как ему теперь не надо искать решения для устаревших браузеров.
  • Ускоряет производительность работы.

Разумеется, изящная деградация применима не всегда. Если в требованиях к вёрстке указана поддержка старых версий, то придётся искать альтернативные решения, например, для скруглённых уголков использовать изображения. Но в большинстве своём требования к вёрстке выставляют без учёта общей ситуации. И если сравнить все преимущества изящной деградации с недостатком, который проявляется только в том, что устаревшие браузеры, в частности IE8 отображают страницу недостаточно «красиво», то симпатии окажутся на стороне прогресса.

Давно не писала, пришлось переехать в место без интернета (вот ужас-то), в следствии чего писать в бложик не смогла. Сегодня я хочу рассказать о методе разработки (вёрстки) который частично используется в оформлении моего бложика.

В последних версиях инновационных браузеров (типа FF 3.5, Opera 10) введены некоторые декоративные эффекты из предложенной спецификации CSS 3. Прозрачность, тени и эффект зебры (полосатости) теперь доступны без использования JavaScript, или дополнительной разметки. Но в некоторых старых браузерах, которые всё ещё используются этих свойств нет, и было бы грустно думать что у вас не будет шанса использовать эти замечательные эффекты ещё несколько лет.

В этой статье я расскажу о том как сделать приятные (постепенные) улучшения в браузерах которые поддерживают особенности CSS3 и при этом показать удовлетворяющую остальных пользователей вёрстку.

Что такое постепенное улучшение (progressive enhancement)?

Чтобы понять концепцию "постепенного улучшения", нужно понять принцип "лёгкого ухудшения" (graceful degradation), который хорошо описан следующей цитатой:

Лёгкое ухудшение означает что ваш сайт продолжает работать даже если просматривается в менее чем оптимальном браузере, в котором продвинутые эффекты не работают.
Fluid Thinking, by Peter-Paul Koch

"Постепенное улучшение" использует тот же метод только с противоположной стороны, вместо заботы о том чтобы сайт не развалился в старом браузере, нужно прежде всего думать о контенте и просто добавлять в дизайн особенности современных программ чтобы улучшить пользовательское восприятие, в то время как базовое состояние вёрстки всё ещё работает на старых машинах. Это на текущий момент наилучший, способ применять новые возможности CSS 3.

Пример

Для примера сделаем простое меню навигации которое будет выглядеть немного красивее в зависимости от поддержки CSS в вашем любомом браузере.

Хотела бы заметить что в этом примере я не использую графику, хаки или браузеро-специфические префиксы - все улучшения засчёт декларированных возможностей. Подразумевая это некоторые вещи ниже сделаны специально для примера, и могут быть не лучшим выбором в создании реальных сайтов.

Разметка

Сделаем простое меню используя неупорядоченный список (ul):

Базовый стиль

В качестве базового я применю стиль который использует только простые селекторы наслезования. Он создаёт границу у каждого элемента и меняет фон при наведении мыши (onmouseover). Это должно работать в любом браузере сделанном за последние 7-8 лет (и возможно больше).

CSS очень прост:

Ul {
background-color: blue;
border-bottom: 1px dotted #999;
list-style: none;
margin: 15px;
width: 150px;
}

li {
background-color: #fff;
border: 1px dotted #999;
border-bottom-width: 0;
font: 1.2em/1.333 Verdana, Arial, sans-serif;
}

li a {
color: black;
display: block;
height: 100%;
padding: 0.25em 0;
text-align: center;
text-decoration: none;
}

li a:hover { background-color: #efefef; }

Единственная странность тут это синий фон у

    ; это я объясню позже. С этим стилем, у нас будет следующий базовый вид, он будет отображаться в IE6 так:

    Базовая вёрстка, так будет выглядеть в IE6 и других старых браузерах.

    Применение улучшений

    IE7 был первым в серии браузеров IE который поддерживал все селекторы атрибутов из CSS 2.1, что тоже распространено в почти всех других браузерах. Мы можем использовать один из них - дочерний селектор - чтобы начать улучшение. Так как IE6 не поддерживает дочерние селекторы он проигнорирует следующие правила:

    Body > ul { border-width: 0; }

    ul > li {
    border: 1px solid #fff;
    border-width: 1px 0 0 0;
    }

    li > a {
    background-color: #666;
    color: white;
    font-weight: bold;
    }

    li:first--child a { color: yellow; }

    li > a:hover { background-color: #999; }

    С этими правилами CSS, список выглядит так:

    У меню теперь цветной фон и жирный текст, а также первая ссылка подсвечена другим цветом.

    Так отобразят список IE7, Firefox, Safari и Opera.

    Сделаем больший акцент

    Следующим шагом увеличим акцент, используя свойство которое IE не распознаёт: Прозрачность (opacity). Нам не надо применять специальных селекторов для этого, т.к. IE просто пропустит то свойсво которое он не поддерживает:

    Li { opacity: 0.9; }

    li:hover { opacity: 1; }

    Следующая картинка показывает как это свойство работает в опере, вы можете увидеть что элементы списка приобрели лёгкий синий оттенок от фона

      . При наведении мыши (mouseover), каждый элемент становится полностью непрозрачным:

      Вы можете конечно использовать IE"шное свойство filter для этого же эффекта в IE. Равно как и браузеро-специфичные префиксы (-moz-, -webkit-) для нижеуказанных свойств. Но в образовательных целях я придержусь стандарта CSS, так как filter не стандартное свойство, то оно и не валидно.

      Firefox 2 поддерживает прозрачность, но в более поздних браузерах мы можем пойти ещё дальше. В Safari и Opera, мы можем украсить текст используя свойство text-shadow:

      Li a:hover { text-shadow: 2px 2px 4px #333; }

      Как показывает следующая картинка, элемент при наведении приобретает небольшую тень и кажется слегка выступающим со страницы:

      Наконец, можно позаботиться полной поддержки Оперой новых CSS 3 селекторов и добавить ещё один слой улучшений: переменные цвета фона используя селектор nth-child:

      Li:nth-child(2n+1) a { background-color: #333; }

      li:nth-child(n) a:hover {
      background-color: #aaa;
      color: #000;
      }

      li:first--child > a:hover { color: yellow; }

      Мы увидим полосатое меню в Опере:

      Итог и выводы

      На рисунке ниже видно как начальная разметка выглядит в IE6, IE7, Firefox, Safari и Опере, после применения правил CSS описанных в этой статье. как вы можете видеть, так как поддержка браузерами CSS становится всё более утончённой, меню становится более стильным и сложным, и используя технику постеменного улучшения, меню остаётся рабочим даже в очень старых браузерах.

      Конечно, многие браузеры имеют вереницу других свойств которые я не описала здесь но которые можно использовать, например RGBA цвета и SVG как цвета фона.