Лучшая практика: вы должны максимально использовать селектор HTML. Это делает код более управляемым и понятным для людей. Существуют также преимущества в производительности (хотя в наши дни это не проблема).
Тем не менее, существует множество случаев, когда НЕ выгодно использовать селектор HTML. В вашем примере есть атрибут состояния, но не у всех элементов. Как вы будете по-разному отображать текст в вашем div
, когда это предупреждение вместо контекстной информации? Для этого нет атрибута по умолчанию.
Также намного проще переключать классы, чем устанавливать атрибуты с чем-то вроде Javascript.
Наконец, вы можете учесть крайние случаи, которые потребуют очень замысловатые HTML селекторы li > li:nth-child(11)
, когда вы можете просто добавить класс .special
. Это особенно верно, когда ваши лине динамичны c, и вы больше не хотите выделять 11-е ...
Чтобы ответить на ваш вопрос. Ничто не мешает людям. Но я лично собираюсь написать код самым простым способом, который решит мою проблему. Я предполагаю, что я очень "нормален" в этом аспекте, и у других есть подобные причины.