Атрибут класса в теге <HTML>?

Является ли класс легальным атрибутом HTML-элемента?

<html class="...">

Приложение Oracle ADF делает это - почему?

Ответ 1

Недействительно в HTML 4:

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- document root element -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

Недействительно в XHTML 1.0:

<!ELEMENT html (head, body)>
<!ATTLIST html
  %i18n;
  id          ID             #IMPLIED
  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
  >

Это действительно в HTML 5:

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

  • ...
  • класса
  • ...

В моем приложении ADD для Oracle это объясняется тем, почему

Предположительно применить стиль или JS из общего внешнего файла к определенным страницам.

Ответ 2

Есть несколько веских причин использовать класс в теге HTML.

Вы можете использовать такие css-глобалы для стилизации вокруг разных страниц, разных браузеров и т.д.

modernizr использует этот метод

css_browser_selector.js использует этот метод

Ричард Пьянка обсуждает, как техника используется в приведенном выше css_browser_selector script

Крис Койер обсуждает, почему техника полезна

Дальнейшее чтение:

Избегайте установки глобального класса для html

Ответ 3

"Атрибут класса недействителен: base, head, html, meta, param, script, style и title". http://www.w3schools.com/tags/att_standard_class.asp

Вы можете получить то, что хотите, используя этот шаблон:

<html>
   <body class="">
   </body>
</html>

или (лучше, я думаю)

<html>
   <body>
      <div class="">
      </div>
   </body>
</html>

Ответ 4

Атрибут class недействителен в тегах <base>, <head>, <html>, <meta>, <param>, <script>, <style> и <title>. [Ссылка]