Использование классов CSS и - в зависимости от случая - идентификаторов (уникальных!!) является совершенно нормальным и часто единственным решением для сохранения HTML-кода валидным и предоставления дополнительных атрибутов, используемых скриптами.
Хотя использование нестандартных атрибутов тоже часто работает нормально, оно не позволит вашему html-коду быть валидным и может вызвать проблемы в будущем.
Однако в некоторых случаях могут быть атрибуты, которые тоже можно использовать - например, rel
для ссылок, который часто используется для скриптов, изменяющих поведение ссылок.
http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 также упоминает, что класс является универсальным:
Атрибут class, с другой стороны. с другой стороны, назначает одно или несколько имен классов элементу; можно сказать, что элемент что он принадлежит к этим классам. Класс имя может быть общим для нескольких элементов экземпляров. Атрибут class имеет несколько ролей в HTML:
- Как селектор таблицы стилей (когда автор хочет назначить информацию о стиле набору элементов).
- Для обработки агентами пользователя общего назначения.
Я так не думаю.
Вы не отделяете данные от представления, если используете такие классы, как «правильный», «розовый» и т. Д.
Я использую классы для определения того, что находится внутри элемента.
<div class="product">
Я могу использовать его с CSS и JS, но иногда мне просто нравятся классы, чтобы я мог легко отлаживать.
Я бы сказал, что это нормально. Атрибут называется class, а не cssstyleclass или что-то в этом роде. Имеет смысл определять элементы с чем-то общим с атрибутом класса.
Это на самом деле очень хитроумно . Сначала вы не думаете об этом, но с иерархиями классов вы можете проделать довольно резкие вещи.
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 будет работать нормально, но что более тонко здесь, так это то, что теперь у меня есть две вещи. Логика и стиль в одном кадре. Поскольку водяной знак, используемый здесь как флаг, также может использоваться для применения определенного визуального стиля через CSS, в зависимости от состояния этого ввода. например Я мог бы не использовать сероватый курсивный шрифт, когда водяной знак активен.
Подобных примеров много, и я призываю вас поэкспериментировать.
Не думаю, что это плохая практика. Если они вам нужны, вы должны их использовать. Это имеет тональный смысл.
Если вы не хотите, возможно, у вас есть родительский элемент, который окружает все элементы, или вы можете найти что-то еще, что у них общего, и преобразовать это в селектор. $ ("div # somediv> div"). Hide ()
Но это будет стоить вам больше времени и размышлений, как если бы вы просто дали им класс.
Атрибут class определяет имя класса для элемента.
Атрибут class в основном используется для того, чтобы указать на класс в таблице стилей. Однако он также может быть использован программой JavaScript (через HTML DOM) для внесения изменения элементов HTML с указанным классом.
не плохо использовать атрибуты класса без соответствующего правила css...
даже лучше использовать class в качестве "держателя данных", чем любые другие атрибуты, такие как rel, title и т.д....
Это совершенно приемлемо. Поскольку обработка на стороне клиента становится все более распространенным явлением (через jQuery, ExtJS, Prototype и т. Д.), Имеет смысл создать эффективный код, который может использовать мощную поддержку селекторов, предоставляемую этими библиотеками.