Quel genre de langage est CSS?
Ma première tendance a été d'appeler cela un langage de balisage ... mais cela ne correspond pas vraiment au moule:
Un langage de balisage est un système permettant d'annoter un texte d'une manière qui se distingue syntaxiquement de ce texte. - Wikipédia
CSS utilise divers sélecteurs pour appliquer des propriétés aux éléments dans HTML, un langage de balisage
Je dirais que c'est un domaine déclaratif langage spécifique.
Syntaxiquement, CSS est un mélange de deux langues: la langue des sélecteurs, qui correspond à un modèle, comme regexps ou xpath, et la langue des propriétés, qui peuvent être classées comme "procédurales-déclaratives", car les propriétés sont essentiellement des affectations. les opérateurs. Au niveau subjectif, css est clairement qualifié de vilain gâchis, comme presque tous les autres fruits des efforts collectifs déployés dans le domaine de la conception linguistique ("un chameau est un cheval conçu par un comité").
CSS n'est pas vraiment un langage en soi; c'est plutôt une syntaxe pour décrire les directives de configuration.
En fait, ce n'est ni l'une ni l'autre de ces choses. CSS est une description d'un certain nombre de jetons et de leurs significations visuelles. Les fichiers .css contiennent ces jetons structurés de manière à permettre à un ordinateur de les analyser. Les déclarations CSS peuvent prendre la forme de déclarations name = "value" dans des documents SVG; et la structure de fichier .css pourrait tout aussi bien être utilisée pour, par exemple, contenir des descriptions d'unités dans une itération particulièrement absurde de FreeCiv.
La définition que Wikipédia en fait en tant que langage de style ressemble à une définition forcée de la généralisation d'un phénomène singulièrement existant; et il devrait être clair que ce n'est en aucun cas un langage de balisage, car il ne marque rien en soi.
CSS est très certainement un langage:
Wikipedia fait référence à css en tant que 'langage de style'
http://en.wikipedia.org/wiki/Style_sheet_language
Également du W3C qui a développé CSS: (en comparant xsl et css )
Les caractéristiques uniques sont que CSS peut être utilisé pour styliser des documents HTML et XML. XSL, en revanche, est capable de transformer des documents. Par exemple, XSL peut être utilisé pour transformer des données XML en documents HTML/CSS sur le serveur Web. De cette façon, les deux langues se complètent et peuvent être utilisées ensemble.
Les deux langues peuvent être utilisées pour styliser des documents XML.
Comme vous pouvez le constater dans la deuxième phrase, le W3C fait référence à CSS en tant que langage.
Et la prochaine citation à nouveau du même article:
Le fait que le W3C ait développé XSL en plus de CSS a créé une certaine confusion. Pourquoi développer un second langage feuille de style alors que les développeurs n’ont même pas terminé le premier? La réponse se trouve dans le tableau ci-dessous:
CSS XSL
Can be used with HTML? yes no
Can be used with XML? yes yes
Transformation language? no yes
Syntax CSS XML
CSS a une grammaire bien définie, il s’agit donc d’un langage. Si vous deviez choisir entre un CSS déclaratif ou un impératif, il le serait alors, car les résultats de son fonctionnement sont déterminés par le programme qui interprète et traite réellement le CSS. .
Cependant, vous ne pouvez rien construire d'utile avec CSS seul; il a besoin d'un document pour fonctionner, et tout ce que le CSS fait, c'est fournir des informations supplémentaires pour le document; efficacement, le SCCC fait partie du document sur lequel il opère.
Le problème avec CSS est qu’il est utilisé dans le cadre du processus de génération HTML vers DOM; par conséquent, CSS se comporte de la même manière que les variables globales «désordonnées» et, par conséquent, les développeurs doivent faire face à la pléthore d’effets secondaires désagréables que CSS apporte.
Espérons que Håkon Wium Lie, l'inventeur du CSS, et un acteur majeur du W3C, se rendra un jour compte que le CSS était et est une erreur depuis le début jusqu'à aujourd'hui et le mauvais chemin à suivre pour séparer le balisage sémantique présentation.
Aujourd'hui, CCS acquiert des fonctionnalités impératives avec les requêtes @media et le ciblage avec des opérateurs tels que @screen et @print. Mais aucune des nouvelles fonctionnalités ne corrigera les défauts fondamentaux de CSS: les terribles globals et l'utilisation notoire et déraisonnable des effets secondaires avec ses sélecteurs d'éléments.
Malheureusement, l’étude de CSS en tant que langage est plus complexe que celle de vrais langages de programmation, car les exemples de son utilisation sont plus anecdotiques que pratiques, d’où la nécessité de disposer de frameworks CSS complets tels que Bootstrap et d’autres pour faire votre travail.