Какой язык является CSS? - PullRequest
50 голосов
/ 20 апреля 2010

Какой язык является CSS?

Первым делом я хотел назвать его языком разметки ... но он не очень подходит для этого:

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

CSS использует различные селекторы для применения свойств к элементам в HTML, языке разметки

Ответы [ 5 ]

35 голосов
/ 20 апреля 2010

Я бы сказал, что это специфичный для домена декларативный язык.

5 голосов
/ 20 апреля 2010

Синтаксически, CSS представляет собой смесь двух языков: языка селекторов, который соответствует шаблону, например, regexps или xpath, и языка свойств, который можно классифицировать как «процедурно-декларативный», поскольку свойства по сути, операторы присваивания. На субъективном уровне css явно квалифицируется как безобразный беспорядок, как почти любой другой плод коллективных усилий в области языкового дизайна («верблюд - это лошадь, созданная комитетом»).

5 голосов
/ 20 апреля 2010

CSS не является на самом деле языком как таковым;это скорее синтаксис для описания директив конфигурации.

На самом деле, это ни то, ни другое;CSS - это описание ряда токенов и их визуальных значений;Файлы .css содержат эти токены, структурированные таким образом, чтобы компьютер мог их проанализировать.Объявления CSS могут принимать форму объявлений name = "value" в документах SVG;и файловую структуру .css можно с такой же легкостью использовать, скажем, для описания модулей в особенно абсурдной итерации FreeCiv.

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

3 голосов
/ 20 апреля 2010

CSS определенно является языком:

Википедия называет CSS языком стилей ' '

http://en.wikipedia.org/wiki/Style_sheet_language

Также от W3C, который разработал CSS: (сравнение и )

Уникальными особенностями является то, что CSS можно использовать для стилизации документов HTML и XML. XSL, с другой стороны, способен преобразовывать документы. Например, XSL можно использовать для преобразования данных XML в документы HTML / CSS на веб-сервере. Таким образом, два языка дополняют друг друга и могут использоваться вместе.

Оба языка могут использоваться для оформления XML-документов.

Как видно из второго предложения, W3C относится к CSS как к языку.

http://www.w3.org/Style/

И снова следующая цитата из той же статьи:

Тот факт, что W3C разработал XSL в дополнение к CSS , вызвал некоторую путаницу. Зачем разрабатывать второй язык таблиц стилей , когда разработчики даже не закончили первый? Ответ можно найти в таблице ниже:

                            CSS     XSL
Can be used with HTML?      yes      no 
Can be used with XML?       yes     yes
Transformation language?     no     yes
Syntax                      CSS     XML
1 голос
/ 16 февраля 2019

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

Тем не менее, вы не можете создать что-нибудь полезное только с помощью CSS; ему нужен документ для работы, и все, что CSS делает, это предоставляет дополнительную информацию для документа; по сути, CCS является частью документа, над которым он работает.

Проблема с CSS заключается в том, что он используется как часть процесса генерации HTML в DOM; поэтому CSS ведет себя подобно «грязным» глобальным переменным, и в результате разработчикам приходится иметь дело с множеством неприятных побочных эффектов, которые CSS приносит вместе с ним.

Будем надеяться, что Хакон Вийм Ли, изобретатель CSS и крупный игрок в W3C, однажды придет к выводу, что CSS был и остается ошибкой с самого начала и до сегодняшнего дня и является неправильным путем для достижения разделения. семантическая разметка и представление.

Сегодня CCS получает необходимые функции с помощью запросов @media и нацеливания с помощью @operators, таких как @screen и @print. Но ни одна из новых функций не исправит основные недостатки CSS: ужасные глобалы и печально известное и необоснованное использование побочных эффектов с селекторами элементов.

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

...