Каков наилучший способ исправить проблемы CSS в IE6 - с помощью JavaScript? - PullRequest
2 голосов
/ 29 июля 2010

Я знаю, что это может сводиться к философской проблеме, поэтому я не хочу начинать обсуждение этой темы.Но я ищу (или несколько из них) лучший способ решения большинства проблем CSS-стилей в Internet Explorer 6.

Мне известна эта статьяна forabeautifulweb.com , и рекомендуется просто накормить пользователей IE6 универсальной простой таблицей стилей IE6 с некоторыми базовыми стилями, которые лучше, чем настройки браузера по умолчанию.Для моего приложения это не самое лучшее.

Мне также известна концепция «исправления» поддержки CSS в IE6 с помощью Javascript, и я как бы фанат этой идеи.Но я не знаю, какой (если есть) лучший - я знаю, что в дикой природе плавают несколько человек. В этой статье Эрика Мейера упоминается один , но он был написан почти 2 года назад, так есть ли сейчас более стандартный сценарий для этой цели?

Кто-нибудь может указать мне на один илидва таких сценария, которые, как доказали, были эффективны для обновления некоторых обработчиков CSS в IE6, чтобы они больше походили на современный браузер?


ОБНОВЛЕНИЕ: всем отвечающим, кто пытается убедить меня неиспользуйте JS, чтобы решить проблему - я затыкаю уши и жужжаю.:)

Серьезно, я не спрашиваю, использовать ли JS для этого.Мы уже решили, что нам не нужна поддержка IE6, и нам не стоит тратить время на «отладку» наших таблиц стилей только для IE6.Это решение основано на нашей аудитории и статистике нашего сайта для использования IE6.

Насколько все комментарии о "что делать, если у пользователя не включен JS?"Ну, в этом случае многие вещи на нашем сайте все равно не будут выглядеть правильно, так что это немного немой вопрос.

Я уже реализовал IE7.js, предложенный Гордоном, и этоВполне достаточно для нас, чтобы обойтись в IE6, с очень небольшим недостатком.

Спасибо вам все равно за ваш вклад.

Ответы [ 7 ]

3 голосов
/ 29 июля 2010

Вы можете использовать эту библиотеку , если хотите сделать это с помощью JavaScript:

IE7.js - это библиотека JavaScript, позволяющая Microsoft Internet Explorer вести себя как соответствующий стандартамбраузер.Он исправляет многие проблемы с HTML и CSS и обеспечивает прозрачную работу PNG в IE5 и IE6.

Существует также CSS3Pie , который добавляет поддержку CSS3 для браузеров:

PIE делает Internet Explorer 6-8 способным отображать несколько наиболееполезные функции оформления CSS3.

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

2 голосов
/ 29 июля 2010

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

<link rel="stylesheet" type="text/css" href="normal.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="ie6.css" />
<![endif]-->

В ie6.css у вас просто есть правила, которые смешивают стилиДля работы в IE6 вы все равно используете свою обычную таблицу стилей, поэтому ваш сайт выглядит одинаково в IE6 и обычном мире.

1 голос
/ 29 июля 2010

Сценарий Дина Эдвардса ie7.js (связанный Гордоном) по-прежнему является современным в этой области.

От того, какой подход лучше, зависит. Скрипт Дина Эдвардса исправляет множество ошибок IE CSS и позволяет использовать селекторы, такие как множественный селектор классов и дочерний селектор, которые вообще не поддерживаются в IE 6.

Если вы довольны тем, что пользователи IE 6 в вашей целевой аудитории, как правило, включают JavaScript, библиотека, подобная Dean, может сэкономить вам кучу времени и позволить вам урезать код с помощью селекторов, которые IE 6 не поддерживает.

Однако вам, вероятно, все еще понадобится таблица стилей IE 6 для решения проблем, которые не решает библиотека Дина.

Лучшее решение может состоять в том, чтобы подождать, пока Microsoft прекратит поддерживать IE 6 (как они это сделали с Mac IE 5), потому что если Microsoft не поддерживает его, вряд ли кто-то будет справедливо ожидать от вас. В настоящее время мы надеемся на 2014 на этот счет.

1 голос
/ 29 июля 2010

Исходя из личного опыта, ie6 может быть исправлено в нескольких строках CSS и довольно много проверок с помощью панели инструментов firebug / developers .. без необходимости в условных комментариях.

Большинство проблем, с которыми я сталкиваюсь, связаны с отступом / полем, и я не использую лучший метод с первого раза.
Я также обнаружил, что overflow:hidden исправляет свою справедливую долю ошибок ie6.

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

Это только я лично, я использую условные комментарии в качестве ПОСЛЕДНЕГО курорта.

0 голосов
/ 29 июля 2010

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

Чтобы избавиться от многих проблемразличных интерпретаций от браузеров (не только IE) пользователя таблицы стилей css-reset.Есть много плавающих вокруг.

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

I для одноголюблю YAML (http://www.yaml.de/en/home.html),, есть Blueprint (http://www.blueprintcss.org/) и, возможно, несколько других). Поверьте мне - как только вы используете CSS Framework, вы никогда не захотите возвращаться.

0 голосов
/ 29 июля 2010

Как правило, вам не нужен JavaScript.Вы можете использовать старый добрый CSS.Это помогает хорошо знать hasLayout .

Чаще всего вы можете исправить проблемы IE6 и 7, указав расположение проблемных элементов.Для этого присвойте ему фиксированный height или width или используйте проприетарный zoom.

. Мой любимый метод нацеливания на определенные версии браузера IE заключается в использовании условных комментариев для добавления * 1010.* как прямой потомок <body>, который позволяет мне узнать, в какой версии IE я нахожусь ( примерно так ).Таким образом, я могу нацеливаться на IE6 напрямую:

.IE6 div.fubar {
    zoom: 1;
}

Еще одна вещь, которую нужно помнить, это то, что практически невозможно добиться четности пикселей в IE6 / 7/8 / Firefox / Safari / Chrome / Opera, поэтому если некоторыеВ браузере, которому почти десять лет, дела обстоят не так, как надо, вам не всегда нужно об этом беспокоиться.

Позиция - это все * В 1020 * есть несколько полезных советов об ошибках IE,тоже.

0 голосов
/ 29 июля 2010

jQuery и его плагины работают лучше всего для проблем IE6.Попробуйте!

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