Это - плохая форма для использования атрибутов КЛАССА без соответствующего правила CSS? [дубликат]

12
задан CRice 7 October 2010 в 00:16
поделиться

7 ответов

Использование классов CSS и - в зависимости от случая - идентификаторов (уникальных!!) является совершенно нормальным и часто единственным решением для сохранения HTML-кода валидным и предоставления дополнительных атрибутов, используемых скриптами.

Хотя использование нестандартных атрибутов тоже часто работает нормально, оно не позволит вашему html-коду быть валидным и может вызвать проблемы в будущем.

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

http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 также упоминает, что класс является универсальным:

Атрибут class, с другой стороны. с другой стороны, назначает одно или несколько имен классов элементу; можно сказать, что элемент что он принадлежит к этим классам. Класс имя может быть общим для нескольких элементов экземпляров. Атрибут class имеет несколько ролей в HTML:

  • Как селектор таблицы стилей (когда автор хочет назначить информацию о стиле набору элементов).
  • Для обработки агентами пользователя общего назначения.
5
ответ дан 2 December 2019 в 06:07
поделиться

Я так не думаю.

Вы не отделяете данные от представления, если используете такие классы, как «правильный», «розовый» и т. Д.

Я использую классы для определения того, что находится внутри элемента.

<div class="product">

Я могу использовать его с CSS и JS, но иногда мне просто нравятся классы, чтобы я мог легко отлаживать.

3
ответ дан 2 December 2019 в 06:07
поделиться

Я бы сказал, что это нормально. Атрибут называется class, а не cssstyleclass или что-то в этом роде. Имеет смысл определять элементы с чем-то общим с атрибутом класса.

2
ответ дан 2 December 2019 в 06:07
поделиться

Это на самом деле очень хитроумно . Сначала вы не думаете об этом, но с иерархиями классов вы можете проделать довольно резкие вещи.

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, в зависимости от состояния этого ввода. например Я мог бы не использовать сероватый курсивный шрифт, когда водяной знак активен.

Подобных примеров много, и я призываю вас поэкспериментировать.

2
ответ дан 2 December 2019 в 06:07
поделиться

Не думаю, что это плохая практика. Если они вам нужны, вы должны их использовать. Это имеет тональный смысл.

Если вы не хотите, возможно, у вас есть родительский элемент, который окружает все элементы, или вы можете найти что-то еще, что у них общего, и преобразовать это в селектор. $ ("div # somediv> div"). Hide () Но это будет стоить вам больше времени и размышлений, как если бы вы просто дали им класс.

1
ответ дан 2 December 2019 в 06:07
поделиться

Атрибут class определяет имя класса для элемента.

Атрибут class в основном используется для того, чтобы указать на класс в таблице стилей. Однако он также может быть использован программой JavaScript (через HTML DOM) для внесения изменения элементов HTML с указанным классом.

источник

не плохо использовать атрибуты класса без соответствующего правила css...

даже лучше использовать class в качестве "держателя данных", чем любые другие атрибуты, такие как rel, title и т.д....

4
ответ дан 2 December 2019 в 06:07
поделиться

Это совершенно приемлемо. Поскольку обработка на стороне клиента становится все более распространенным явлением (через jQuery, ExtJS, Prototype и т. Д.), Имеет смысл создать эффективный код, который может использовать мощную поддержку селекторов, предоставляемую этими библиотеками.

8
ответ дан 2 December 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: