Эта спецификация определяет каскадные таблицы стилей, уровень 2, редакция 1 (CSS 2.1). CSS 2.1 - это язык таблиц стилей, который позволяет авторам и пользователям прикреплять стиль (например, шрифты и интервалы) к структурированным документам (например, документам HTML и приложениям XML).
Ответ 2
Одно техническое различие между ними заключается в том, что :root - это псевдокласс, имеющий большую специфичность, чем html (селектор типа)
:root {
color: red
}
html {
color: green;
}
<div>hello world</div>
Ответ 3
Для документов HTML нет никакой разницы - ваш корневой элемент является <html>, поэтому html{} и :root{} (помимо различий в специфике) семантически эквивалентны.
Однако вы можете применять CSS не только к HTML, но и ко всем XML-подобным документам. Вот почему :root - для назначения корневого элемента документа независимо от типа документа. Большинство людей смущены этой разницей, потому что преобладающим преимущественным вариантом использования CSS является стилизация HTML-документов.
Пример: Вы можете стилизовать документы SVG с помощью CSS. При его оформлении ваш корневой элемент будет (очевидно ;-)) не html а svg. Смотрите следующий список тегов SVG.