Должны ли классы, используемые для выбора в JavaScript, быть определены в файле CSS? - PullRequest
3 голосов
/ 24 марта 2011

Наш дизайнер призывает нас добавить классы, которые мы используем для селекторов JavaScript, в файл CSS с комментарием о том, что они предназначены для использования JavaScript. Намерение состоит в том, чтобы избежать конфликта интересов; Дело в том, что дизайнер может удалить класс из элемента, потому что стиль не применяется.

Например, разметка может быть:

<div id="Book1" class="book">
</div>

и затем, если для выбора JavaScript используется класс "book", файл CSS будет содержать следующее:

.book {/* Used as a JavaScript selector */}

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

Ответы [ 2 ]

2 голосов
/ 24 марта 2011

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

Лучше убедиться, что вы создаете классы для элементов, на которые вы хотите нацелиться, которые не связаны со стилем и используются только для целей js на стороне клиента. Вы всегда можете согласиться с соглашением, согласно которому все такие классы ставятся перед префиксом js, например, jsMYCLASS, а затем ссылаются на них, используя что-то вроде следующего синтаксиса jquery;

<div class='book jsBookItem'></div>

цель с:

$('.jsBookItem');

В этом примере вы можете видеть, что оригинальный стиль 'book' прекрасно расположен рядом с нестилевым классом, но ваш дизайнер может изменять / удалять стиль 'book' независимо от кода на стороне клиента, который теперь использует только jsBookItem.

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

1 голос
/ 24 марта 2011

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

Вы также можете применять различные правила для идентификации селекторов JS.Мне нравится использовать префикс типа jss_ или что-то в этом роде.

...