CSS是一种什么样的语言?

问题描述 投票:50回答:5

CSS是一种什么样的语言?

我的第一个倾向是称它为标记语言......但它并不适合模具:

标记语言是用于以在语法上与该文本区分的方式来注释文本的系统。 -wikipedia

CSS使用各种选择器将属性应用于HTML(标记语言)中的元素

css definition
5个回答
35
投票

我会说这是一个特定领域的declarative语言。


5
投票

CSS本身并不是一种语言;它更像是用于描述配置指令的语法。

事实上,它既不是这些东西; CSS是对许多令牌及其视觉含义的描述; .css文件包含这些令牌,其结构允许计算机解析它们。 CSS声明可以采用SVG文档中name =“value”声明的形式;并且.css文件结构可以很容易地用于,例如,在FreeCiv的特别荒谬的迭代中包含单元描述。

维基百科将其定义为样式表语言似乎有点强制定义一种奇异存在现象的概括;并且应该清楚它不是一种标记语言,因为它实际上并没有标记任何东西。


5
投票

从语法上讲,CSS是两种语言的混合:选择器的语言,它是模式匹配的语言,如regexps或xpath,以及属性的语言,可以归类为“过程声明”,因为属性本​​质上是赋值运营商。在主观层面上,css显然有点像丑陋的混乱,就像语言设计领域的集体努力的其他所有成果一样(“骆驼是由委员会设计的马”)。


3
投票

CSS绝对是一种语言:

维基百科将css称为“样式表语言”

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

同样来自开发CSS的W3C :(比较

独特的功能是CSS可用于设置HTML和XML文档的样式。另一方面,XSL能够转换文档。例如,XSL可用于将XML数据转换为Web服务器上的HTML / CSS文档。这样,两种语言相互补充,可以一起使用。

两种语言都可用于设置XML文档的样式。

从第二句中可以看出,W3C将CSS称为语言。

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

然后再次引用同一篇文章:

W3C除了CSS之外还开发了XSL这一事实引起了一些混乱。为什么在实施者甚至没有完成第一个样式表语言时开发第二个样式表语言?答案可以在下表中找到:

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

1
投票

CSS有一个明确定义的语法,因此它是一种语言,如果你必须在声明或命令式的CSS之间做出选择,那么它将是声明式的,因为它的操作结果是由程序实际解释和处理CSS决定的。 。

但是,单独使用CSS无法构建任何有用的东西;它需要一个文件来操作,所有CSS都提供文件的补充信息;实际上,CCS是其运作的文件的一部分。

CSS的问题在于它是否用作HTML到DOM生成过程的一部分;因此,CSS的行为类似于“凌乱”的全局变量,因此,开发人员必须处理CSS带来的大量令人讨厌的副作用。

希望CSS的发明者HåkonWium Lie和W3C的主要参与者有一天会意识到CSS从一开始到现在都是错误的,并且是实现语义标记分离的错误途径。介绍。

今天,CCS正在通过@media查询获得必要的功能,并使用@operators进行定位,例如@screen和@print。但是没有任何一个新功能能够纠正CSS的基本缺陷:神奇的全局变量,以及臭名昭着的不合理使用副作用及其元素选择器。

不幸的是,CSS作为一种语言的研究比实际编程语言的研究更复杂,因为如何使用它的例子比实际更轶事,因此需要像Bootstrap等其他综合CSS框架来完成你的工作。

© www.soinside.com 2019 - 2024. All rights reserved.