CSS имеет четко определенную грамматику, таким образом, это язык, и если вам нужно было выбрать между CSS быть декларативным или императивным, то он был бы декларативным, так как результаты его работы определяются программой, фактически интерпретирующей и обработка CSS.
Тем не менее, вы не можете создать что-нибудь полезное только с помощью CSS; ему нужен документ для работы, и все, что CSS делает, это предоставляет дополнительную информацию для документа; по сути, CCS является частью документа, над которым он работает.
Проблема с CSS заключается в том, что он используется как часть процесса генерации HTML в DOM; поэтому CSS ведет себя подобно «грязным» глобальным переменным, и в результате разработчикам приходится иметь дело с множеством неприятных побочных эффектов, которые CSS приносит вместе с ним.
Будем надеяться, что Хакон Вийм Ли, изобретатель CSS и крупный игрок в W3C, однажды придет к выводу, что CSS был и остается ошибкой с самого начала и до сегодняшнего дня и является неправильным путем для достижения разделения. семантическая разметка и представление.
Сегодня CCS получает необходимые функции с помощью запросов @media и нацеливания с помощью @operators, таких как @screen и @print. Но ни одна из новых функций не исправит основные недостатки CSS: ужасные глобалы и печально известное и необоснованное использование побочных эффектов с селекторами элементов.
К сожалению, изучение CSS как языка является более сложным, чем изучение реальных языков программирования, так как примеры его использования более анекдотичны, чем практичны, отсюда и необходимость в комплексных CSS-фреймворках, таких как Bootstrap и других, чтобы получить работа выполнена.