Плохая ли форма использования атрибутов CLASS без соответствующего правила CSS?
Например, если я хотел бы выбрать некоторые элементы с определенным классом с помощью jQuery, и только по этой причине всегда ожидалось, что эти классы ДОЛЖНЫ быть определены в css?.
<div class="xyz">
something
</div>
<div class="xyz">
something else
</div>
//with example jQuery
$(".xyz").hide();
//is it wrong no element 'xyz' is defined in css?
Ответы
Ответ 1
Использование классов CSS и - в зависимости от идентификаторов case (unique!!) отлично и часто единственное решение, позволяющее сохранить ваш HTML-код действительным при предоставлении дополнительных атрибутов, используемых скриптами.
При использовании нестандартных атрибутов часто работает нормально, это также предотвратит проверку вашего html-кода и может вызвать проблемы в будущем.
Однако в некоторых случаях могут быть и attriutes, которые также могут использоваться, например, rel
для ссылок, которые часто используются для скриптов, которые изменяют поведение ссылок.
http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 также упоминает, что класс является универсальным:
Атрибут class, с другой стороны вручную назначает одно или несколько имен классов к элементу; элемент может быть указан принадлежать этим классам. Класс имя может быть разделено несколькими элементами экземпляров. Атрибут class имеет несколько ролей в HTML:
- В качестве селектора таблиц стилей (когда автор хочет присвоить информацию стилей набору элементов).
- Для обработки общего назначения агентами пользователя.
Ответ 2
Это вполне приемлемо. Поскольку обработка клиентской стороны становится все более распространенной (через jQuery, ExtJS, Prototype и т.д.), Имеет смысл создать эффективный код, который может использовать мощную поддержку селектора, предоставляемую этими библиотеками.
Ответ 3
Атрибут class указывает classname для элемента.
Атрибут класса в основном используется для укажите класс в таблице стилей. Однако он также может использоваться JavaScript (через HTML DOM), чтобы сделать изменения элементов HTML с помощью указанный класс.
источник
это не плохая форма использования атрибутов класса без соответствующего правила css...
еще лучше использовать класс в качестве "держателя данных", чем любые другие атрибуты, такие как rel, title и т.д.
Ответ 4
Я так не думаю.
Вы не отделяете данные от презентации, если используете такие классы, как "правый", "розовый" и т.д.
Я использую классы для определения того, что материал находится внутри элемента.
<div class="product">
Я могу использовать его с CSS и JS, но иногда мне просто нравится иметь классы, чтобы я мог легко отлаживать.
Ответ 5
Я бы сказал, что все в порядке. Атрибут называется классом, а не cssstyleclass или что-то в этом роде. Имеет смысл определять элементы с чем-то общим с атрибутом класса.
Ответ 6
Это на самом деле очень хитрый. Сначала вы не задумываетесь об этом, но вы можете делать довольно красивые вещи с иерархиями классов.
Facebook, например, использует HTTP-заголовок User-Agent для установки определенных классов браузера в теге body. Он не использовался все время, но его можно использовать для написания CSS-браузера, и он превосходит многие другие алгоритмы, потому что он просто использует CSS, и вы в конечном итоге группируете специфические для браузера вещи вместе с общими правилами CSS, рекламируя местность в вашем CSS файлы. Это важно, когда вам нужно поддерживать файлы CSS в течение более длительного периода.
a { color: blue; }
.ie7 a { color: black; }
Бесполезно, как CSS "каскадирует" приведенное выше правило CSS для тега привязки будет более конкретным при визуализации с помощью Internet Explorer 7. Это будет через специфичность селектора заставляют метки привязки быть черными в IE7, без хакерских и неясных трюков CSS.
Как упоминалось другими, его также можно использовать с помощью JavaScript. Мне очень полезно использовать классы CSS в качестве логического флага. например Я могу использовать его для создания очень простого водяного знака.
<input type="text" value="watermark" class="watermark" />
$('input').focus(function(e) {
var target = $(this);
if (target.hasClass('watermark')) {
target.val('');
target.removeClass('watermark');
}
});
Этот фрагмент jQuery будет работать отлично, но что более тонкое здесь, у меня теперь есть две вещи. Логика и стиль одним выстрелом. Becuase водяной знак, используемый здесь как флаг, также может использоваться для применения определенного визуального стиля через CSS, в зависимости от состояния этого ввода. например Я бы не имел серого цвета курсивного шрифта, когда знак воды активен.
Есть еще много примеров, подобных этому, и я заставляю вас экспериментировать больше.
Ответ 7
Я не думаю, что это плохая практика. Если они вам нужны, вы должны их использовать. Это делает тональный смысл.
Если вы этого не хотите, возможно, у вас есть родительский элемент, который окружает все элементы, или вы можете найти что-то еще, что у них есть, и перевести это в селектор. $("div#somediv > div").hide()
Но это будет стоить вам больше времени и думать, как будто вы просто даете им класс.