Up-sait.ru

Создание и продвижение сайтов

Up-sait.ru

Создание и продвижение сайтов

Трюки и фильтры css

Трюки и фильтры css

Фильтр CSS – это способ применения или сокрытия заданных правил CSS взависимости от типа или группы типов браузеров. Фильтры основаны на недостатках браузеров , таких, как ошибки синтаксического разбора кода или некорректная реализация правил CSS. Используя их, фильтр при меняет или скрывает правила от браузера.

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

Термин “трюк” (hack) звучит довольно неодобрительно. В нем чувствуется намек на то, что лучше было бы сделать это ” нормальным” образом, но раз уж не выходит ничего не поделаешь, придется прибегнуть к неэлегантному приему. Некоторые дизайнеры предпочитают термин “заплатка” (patch), поскольку в нем явно чувствуется намек на то, что исправляется специфичная ошибка браузера, однако мы считаем, что термин “заплатка ” относится к выполняемым кодам , а не кодам CSS и (X)HTML.

В трюках CSS могут и спользоваться фильтры для применения правила в одном браузере и отмены в другом. В некоторых трюках неправильная реализация правил CSS в отдельных браузерах используется для того , чтобы “заманить” браузер в фрагмент кода, предназначенный специально для него. В сущности, фильтры CSS – это разиовидность трюков , используемых для учета типа браузера. К сожалению, вследствие этого многие дизайнеры неправильно используют обобщенное понятие “трюк” для обозначения фильтров. Поэтому во многих случаях, говоря ” трюк”, имеют в виду “фильтр”.

Предупреждение о трюках и фильтрах css.

Спецификация CSS разрабатывалась с прицелом на совместимость с будущими версиями, Если браузер не поддерживает некоторый селектор , он игнорирует все правило. Аналогично : если браузер не поддерживает некоторое свойство или значение, он игнорирует все объявление. Это означает, что добавление новых селекторов, свойств и значений не должно оказать разрушающего влияния на вывод страницы устаревшими браузерами. Вы можете использовать это для предоставления правил и объявлений современным браузерам , будучи твердо уверенным в том, что устаревшие браузеры деградируют достаточно плавно. Если выйдет новая версия браузера, поддерживающая правило CSS, которое вы используете в качестве фильтра, он (новый браузер) будет работать так, как Вы ожидаете.

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

Мы написали “сравнительно” , поскольку всегда есть некоторая вероятность того , что новый браузер будет поддерживать используемое вами новое правило CSS, но в то же время будет содержать ошибку, которую вы пытаетесь нивелировать. Использование фильтров , основанных на ошибках синтаксического анализа в браузере , более опасный способ, чем применение неподдерживаемых правил CSS. Это – объясняется тем , что в данном случае вы полагаетесь на ошибку, а не на средство CSS. Аналогично предыдущему методу, если ошибка синтаксического анализа будет исправлена, а ошибка, которую вы пытаетесь нивелировать, останется, ваш код будет работать неправильно. Однако вероятность того , что ошибка синтаксического анализа “проникнет” в новую версию браузе ра, довольно высока.

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вас также может заинтересовать:
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *