2010-04-19 27 views
46

¿Qué tipo de lenguaje es CSS?¿Qué tipo de lenguaje es CSS?

Mi primer impulso fue llamar a un lenguaje de marcas ... pero realmente no encaja el molde:

Un lenguaje de marcas es un sistema para anotar un texto de una manera que es sintácticamente distinguible de ese texto. - wikipedia

CSS utiliza varios selectores para aplicar las propiedades a los elementos dentro HTML, un lenguaje de marcas

+2

Creo que a medida que CSS evoluciona será más fácil de describir. Interesantes adiciones recientes como la capacidad de declarar animación de elementos en ciertos eventos. – Finbarr

Respuesta

32

Yo diría que es un declarative lenguaje específico de dominio.

+0

Esto podría ser cierto, pero difícilmente es una definición útil; como la mayoría de las aplicaciones de XML, son, en esencia, DSDL, como muchas otras cosas. –

+3

Las definiciones de DSDL se vuelven útiles cuando sabes lo que es el dominio. :) –

+1

@Vivian Paliath: Sí; pero la definición * de * algo como DSDL no es particularmente así. –

2

CSS es definitivamente un idioma:

Wikipedia se refiere a css como 'Lenguaje de hoja de estilo '

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

También desde W3C CSS que desarrolló: (comparando y )

Las características únicas son que CSS se puede utilizar para el estilo HTML & documentos XML. XSL, por otro lado, puede transformar documentos. Por ejemplo, XSL se puede usar para transformar datos XML en documentos HTML/CSS en el servidor web. De esta forma, los dos idiomas se complementan entre sí y pueden usarse juntos.

Ambos idiomas se pueden utilizar para diseñar documentos XML.

Como puede ver en la segunda oración, W3C se refiere a CSS como un idioma.

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

Y la siguiente cita de nuevo desde el mismo artículo:

El hecho de que el W3C ha desarrollado XSL además de CSS ha causado cierta confusión. ¿Por qué desarrollar un segundo lenguaje de hoja de estilo cuando los implementadores ni siquiera han terminado el primero? La respuesta se puede encontrar en la siguiente tabla:

      CSS  XSL 
Can be used with HTML?  yes  no 
Can be used with XML?  yes  yes 
Transformation language?  no  yes 
Syntax      CSS  XML 
+0

Sí, lo vi. El artículo solo da un ejemplo de lo que es el lenguaje de "hojas de estilo" ... y eso es CSS. –

+0

Sí, también pensé que era extraño. Pero entonces puede ser el único de su tipo hasta ahora. – dkinzer

5

CSS no es realmente un idioma, per se; es más una sintaxis para describir las directivas de configuración.

De hecho, no es ninguna de estas cosas; CSS es una descripción de varios tokens y sus significados visuales; Los archivos .css contienen estos tokens estructurados de manera que permiten que una computadora los analice. Las declaraciones CSS pueden tomar la forma de declaraciones name = "value" en documentos SVG; y el .La estructura de archivos css podría emplearse fácilmente para, por ejemplo, contener descripciones de unidades en una iteración particularmente absurda de FreeCiv.

Wikipedias definición de la misma como un lenguaje de hojas de estilo parece como un poco de una definición forzada de una generalización de un fenómeno existente singularmente; y debe quedar claro que no es de ninguna manera un lenguaje de marcado, ya que en realidad, por sí mismo, no marca nada.

+0

Estoy completamente de acuerdo en que la definición de Wikipedia es un poco forzada. –

+1

Según el W3C, CSS es definitivamente un lenguaje y hay definir al menos tres que entran en esta categoría de idiomas: css, XPath, XSLT - http://www.w3.org/Style/ – dkinzer

+8

Por qué no es un CSS ¿idioma? Claramente, no es un lenguaje de programación, pero tiene su propia gramática, entonces es/es/lenguaje formal. –

5

Sintácticamente, CSS es una combinación de dos idiomas: el lenguaje de los selectores, que es un patrón de coincidencia, como regexps o xpath, y el lenguaje de propiedades, que se puede clasificar como "procedural-declarative", porque las propiedades son esencialmente operadores de asignación. A un nivel subjetivo, el CSS claramente califica como un lío feo, como casi todos los demás frutos de los esfuerzos colectivos en el campo del diseño del lenguaje ("un camello es un caballo diseñado por el comité").

+14

... y C++ es un pulpo hecho al clavar patas adicionales en un perro. –

+0

@Michael: Esa es en realidad una descripción bastante precisa de C++ –

+3

No estoy seguro de llamar a ninguna parte de CSS "procedural" a menos que esté hablando de expresiones, pero me alegro de que alguien esté de acuerdo con que CSS es un feo lío. Cuando, en un * lenguaje de * formato, la mejor manera de centrar algo es darle una propiedad 'margin: auto;' (y un ancho explícito), sabe que algo salió mal. – tloflin