2010-04-19 12 views
46

Che tipo di linguaggio è CSS?Che tipo di linguaggio è CSS?

Il mio primo istinto è stato quello di chiamare un linguaggio di markup ... ma in realtà non misura la muffa:

Un linguaggio di marcatura è un sistema per annotare un testo in un modo che è sintatticamente distinguibile dal testo . - wikipedia

CSS utilizza vari selettori per applicare le proprietà agli elementi all'interno HTML, un linguaggio di markup

+2

Penso che il CSS evolverà e diventerà più facile da descrivere. Interessanti aggiunte recenti come la possibilità di dichiarare l'animazione di elementi su determinati eventi. – Finbarr

risposta

32

direi che è un declarative linguaggio specifico del dominio.

+0

Questo potrebbe essere vero, ma non è una definizione utile; come la maggior parte delle applicazioni di XML, sono, in sostanza, i DSDL, come molte altre cose. –

+3

Le definizioni DSDL diventano utili quando si conosce il dominio. :) –

+1

@Vianian Paliath: Sì; ma la definizione * di * qualcosa come DSDL non è particolarmente così. –

2

CSS è sicuramente una lingua:

Wikipedia si riferisce a css come 'foglio di stile '

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

Anche dal W3C che ha sviluppato CSS: (a confronto e )

Le caratteristiche uniche sono che i CSS può essere utilizzato per stile HTML & documenti XML. XSL, d'altra parte, è in grado di trasformare i documenti. Ad esempio, XSL può essere utilizzato per trasformare i dati XML in documenti HTML/CSS sul server Web. In questo modo, le due lingue si completano a vicenda e possono essere utilizzate insieme.

Entrambe le lingue possono essere utilizzate per lo stile di documenti XML.

Come si vede dalla seconda frase W3C si riferisce al CSS come lingua.

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

E la prossima citazione di nuovo dallo stesso articolo:

Il fatto che il W3C ha sviluppato XSL oltre a CSS ha causato una certa confusione. Perché sviluppare un secondo linguaggio di stile per i fogli di stile quando gli implementatori non hanno ancora terminato il primo? La risposta può essere trovata nella tabella seguente:

      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ì, l'ho visto. L'articolo fornisce solo un esempio di cosa sia il linguaggio "stylesheet" ... e questo è CSS. –

+0

Sì, ho anche pensato che fosse strano. Ma allora potrebbe essere l'unico del genere finora. – dkinzer

5

CSS non è in realtà una lingua, di per sé; è più una sintassi per descrivere le direttive di configurazione.

In effetti, non è nessuna di queste cose; CSS è una descrizione di un numero di token e dei loro significati visivi; I file .css contengono questi token strutturati in modo da consentire al computer di analizzarli. Le dichiarazioni CSS possono assumere la forma di dichiarazioni name = "value" nei documenti SVG; e il .la struttura del file css potrebbe essere facilmente impiegata per, ad esempio, contenere descrizioni di unità in un'iterazione particolarmente assurda di FreeCiv.

La definizione di Wikipedias come un linguaggio di fogli di stile sembra un po 'una definizione forzata di una generalizzazione di un fenomeno singolarmente esistente; e dovrebbe essere chiaro che non è in alcun modo un linguaggio di marcatura, in quanto in realtà non segna nulla da solo.

+0

Sono completamente d'accordo sul fatto che la definizione di Wikipedia sia un po' forzata. –

+1

Secondo il W3C, i CSS sono sicuramente una lingua e ce ne sono almeno tre che rientrano in questa categoria di lingue: css, xpath, xslt - http://www.w3.org/Style/ – dkinzer

+8

Perché non è un CSS un linguaggio? Chiaramente, non è un linguaggio di programmazione, ma ha una sua grammatica, quindi è/è/linguaggio formale. –

5

Sintatticamente, il CSS è un mix di due lingue: il linguaggio dei selettori, che è uno schema di corrispondenza, come espressioni regolari o xpath, e il linguaggio delle proprietà, che può essere classificato come "procedurale-dichiarativo", perché le proprietà sono essenzialmente operatori di assegnazione. A livello soggettivo, i css si qualificano chiaramente come un brutto pasticcio, come praticamente ogni altro frutto di sforzi collettivi nel campo del design del linguaggio ("un cammello è un cavallo progettato dal comitato").

+14

... e C++ è un polipo fatto inchiodando gambe in più su un cane. –

+0

@ Michael: Questa è in realtà una descrizione abbastanza accurata di C++ –

+3

Non sono sicuro che chiamerei qualsiasi parte del CSS "procedurale" a meno che tu non stia parlando di espressioni, ma sono contento che qualcuno sia d'accordo sul fatto che i CSS siano un brutto pasticcio. Quando, in un linguaggio * di formattazione *, il modo migliore per centrare qualcosa è dargli una proprietà 'margin: auto;' (e una larghezza esplicita), sai che qualcosa è andato storto. – tloflin

Problemi correlati