Я не думаю, что здесь есть «линия», я думаю, что есть некоторые простые вещи и некоторые серые области, которые вы должны сбалансировать, что вы хотите. Расширенные функции, производительность, совместимость - все это треугольник, трудно сделать все 3 как можно лучше одновременно.
Если CSS может сделать это, конечно, сделайте это в CSS. Если это не может быть сделано в CSS, используйте jQuery, но не используйте jQuery там, где накладные расходы не нужны, например, $(this).attr("id")
обычно может быть this.id
, многие вещи доступны строго в DOM и все еще в кросс-браузерном режиме.
Когда вы используете это слишком много? Когда он не необходим , иногда вам нужен jQuery для кросс-браузерных селекторов CCS3, иногда вы используете уже доступный селектор CSS и помещаете его в таблицу стилей . Есть сотни других примеров, но если вы можете обойтись без кроссбраузерной чистоты без него, тогда нет нужды, такие вещи, как исчезновение, не являются тривиальными. Если вам вообще нужно включить jQuery, нет никаких причин не использовать .fadeIn()
, если у вас есть (код включен, зачем его дублировать?)
JavaScript против JavaScript
Как сказано в комментариях здесь, ваш сайт должен предлагать все основные функции без JavaScript , это обычно не проблема, например. захват клика и загрузка контента через AJAX ... если вы его не захватываете, они выполняют полную перезагрузку страницы, это простой возврат к стандартному поведению. Тем не менее, все "навороты"? Это точно, но я не думаю, что вам стоит отклониться назад, чтобы предложить all функциональность без JavaScript. Пользователь выключил его, он не получает ничего особенного, это нормально ... посмотрите на SO в качестве примера, отключите javascript, отключите множество несущественных функций , вы можете просматривать все отлично , но комментирование, голосование, в основном действия не обязательно доступны без JavaScript.