Каков консенсус по взлому "Voice-family"? - PullRequest
3 голосов
/ 01 октября 2008

Я только начал работать в довольно крупной компании, и моя группа управляет всеми их публичными веб-сайтами. Сегодня я впервые открыл таблицу стилей и увидел более 20 примеров того, как дизайнеры использовали хак с голосовым семейством для исправления ошибки IE. (Я не знаю, почему они позволяют графическим дизайнерам вообще писать какую-либо разметку)

Каково общее общественное мнение о голосовой семье взломать. Стоит ли рекомендовать использовать условные комментарии IE для включения пользовательских таблиц стилей?

Ответы [ 4 ]

5 голосов
/ 01 октября 2008

Хак с «голосовым семейством», более известный как хак для модели Tantek Celik Box Model, используется для сокрытия определенных правил CSS из IE4 / 5 в Windows из-за неправильной реализации стандарта CSS в этих браузерах. Это попытка предоставить наиболее правильную единую таблицу стилей для всех браузеров, не прибегая к анализу браузера и нескольким таблицам стилей.

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

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

http://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321385551/

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

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

http://www.webstandards.org/

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

4 голосов
/ 01 октября 2008

Взломы любого рода опасны, так как они склонны к непредвиденным последствиям в будущих браузерах (многие ломали с IE7). Безопасные способы фильтрации CSS:

  • (только для IE). Использование условных комментариев. Они всегда будут работать в браузерах Microsoft и будут игнорироваться всеми другими браузерами, поскольку они находятся в комментариях
  • Ориентация на функции - использование селекторов CSS, которые поддерживаются только современными браузерами, чтобы остановить старые браузеры, пытающиеся интерпретировать правила. Однако тот факт, что браузер распознает синтаксис, не означает, что он обрабатывает его правильно. Все, что вы здесь гарантируете, это то, что старые браузеры не будут пытаться отображать эти правила, а не современные браузеры будут выполнять их правильно

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

1 голос
/ 01 октября 2008

Не используйте условные включения. Используйте CSS селектор вместо , это намного элегантнее. Вы можете настроить таргетинг на классы в отдельных браузерах (и / или версиях):

.myClass {...}

.ie6 .myClass {...}

1 голос
/ 01 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...