Если у меня есть решение CSS для всех браузеров, кроме IE, то что выбрать для IE? CSS выражение против JavaScript против jQuery с плагином? - PullRequest
0 голосов
/ 23 декабря 2009

Если у меня есть решение CSS для всех браузеров, кроме IE, то что следует выбрать для IE?

CSS-выражение в условных комментариях IE

или

JavaScript в IE условные комментарии

или

jQuery + плагин в IE условные комментарии

Что будет менее медленным при скорости рендеринга?

Ответы [ 7 ]

1 голос
/ 24 декабря 2009
  1. Не использовать CSS-выражения.

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

Более того, это просто Javascript - он не работает, если JS выключен, создает те же самые глобальные переменные мусора, и др. Таким образом, прибыль равна нулю, потеря высока.

  1. Не включайте JQuery только для этого. Но если он (или Mootools и т. Д.) Включен, используйте его всеми средствами.

  2. Создать вашу функцию без JQ просто и понятно. Просто запустите его при загрузке и изменении размера страницы (http://www.devarticles.com/c/a/JavaScript/OnReset-OnResize-and-Other-JavaScript-Events/1/), и это должно сработать.

Используйте условные комментарии IE, и вы даже действительны.

<!--[if IE]>
<script>
  var dumbIE = function (){
   //your stuff
  }
  onload=onresize=dumbIE;
</script>
<![endif]-->
1 голос
/ 24 декабря 2009

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

1 голос
/ 23 декабря 2009

Вам следует избегать CSS-выражений.

Что касается JavaScript и jQuery, это зависит. Если я могу сделать это всего за несколько строк JS без кросс-браузерных проблем, и я не использую jQuery для других вещей, то нет причин загружать всю библиотеку jQuery. Что-нибудь намного более сложное, чем несколько document.getElementById или alert вызовов, хотя, и я, вероятно, хочу, чтобы jQuery был доступен, и в этот момент я мог бы также использовать плагины jQuery

1 голос
/ 23 декабря 2009

Обновлен до нового фокуса: Если у вас все хорошо выглядит, кроме IE (очень распространенная ситуация ...), тогда вам нужен какой-то метод написания кода, который только IE видит / выполняет , Вы можете сделать это с помощью браузера, сниффинга в JavaScript, условных комментариев в CSS и HTML . IE CSS ошибки (у кого-нибудь еще есть хорошие ссылки?)

(Старый ответ:)

CSS-выражения: ярлык только для Internet Explorer.

JavaScript: Приходится кодировать каждую вонючую вещь самостоятельно. Работает «кросс-браузер», но вам все равно нужно протестировать во всех браузерах, чтобы убедиться, что он делает то, что вы хотите.

jQuery: кросс-браузер, легко, просто. : D

1 голос
/ 23 декабря 2009

Плагин jQuery, если я уже использую jQuery.
Я не думаю, что когда-либо использовал выражение CSS, даже как хак.
Что касается JavaScript-библиотеки не-jQuery - мне пришлось бы изучать ее с нуля, она могла бы повторно реализовать некоторые функции jQuery (поэтому не извлекает выгоду из движка jQuery, кросс-браузер и т. Д.) И может быть не написана в удобном стиле jQuery, как цепочки и либеральные проверки нуля.

1 голос
/ 23 декабря 2009

CSS-выражения работают только в Internet Explorer, поэтому вам придется использовать Javascript в той или иной форме для сложных стилей. Firefox, Safari и Chrome распознают много CSS3, поэтому, если вы пытаетесь сделать что-то вроде закругленных углов или нескольких фонов, вы можете использовать это и искать эквивалентное выражение для IE.

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

0 голосов
/ 23 декабря 2009
  1. Подождите, пока Microsoft улучшит IE .. ха-ха.
  2. Игнорировать IE -> Поощрять своих посетителей / пользователей сети загружать / использовать другой браузер (IMHO, Firefox - действительно, действительно хороший выбор, если не лучший)

Есть способы сделать IE «совместимым» с современными, CSS-стилизованными веб-сайтами (такими как общеизвестный комментарий <!--[if lte IE 6]>...<[endif]--> и т. Д.). Но в любом случае, решать вам.

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