在上面这张图中,网页由三个部分组成:HTML、CSS、javascript。
HTML和Javascript这两个网页的组成部分学记之前说过,这里就不在赘述了。CSS学记还没有说过,在这篇文章当中,就来描述一下CSS的历史、发展历程和内容。
CSS
层叠样式表(CascadingStyleSheets)又称串样式列表、级联样式表、串接样式表、阶层式样式表。是一种用来为结构化文档(如HTML文档)添加样式(字体、间距和颜色等)的计算机语言,由W3C定义和维护。当前最新版本是CSS2.1,为W3C的推荐标准。CSS3现在已被大部分现代浏览器支持,而下一版的CSS4仍在开发中。
起源
在HTML规范中规定了网页中,标题、段落应该使用的标签。但规范中并没有规定这些内容应该以什么样式(比如大小、位置、间距、缩进等属性)呈现在浏览器中。
从年代初,HTML被发明开始,样式表就以各种形式出现了。不同的浏览器结合了它们各自的样式语言,访问者可以使用这些样式语言来调节网页的显示方式。一开始样式表是给访问者使用的,最初的HTML版本只含有很少的显示属性,访问者来决定网页应该怎样被显示。
年,RobertRaisch提出了一种名为“RRP”的样式规则建议。但这个RRP只允许网页使用1个样式表,不像现在的CSS能支持同时加载多个。
不久后出现的Mosaic浏览器就采用增加新种类的HTML标签实现样式的表达,以满足设计师的要求,但这与现在的CSS设计原则不符。随着HTML自带的样式功能的增加,外来定义样式的语言逐渐减弱了。
年发布的这个Mosaic浏览器是第一款用户界面,并支持书签、图标按钮和图片显示。之前的浏览器都是纯文字浏览器。
年,万维网之父蒂姆·伯纳斯-李在欧美众多高能物理研究者和技术人员的支持下,于美国麻省理工学院创立了万维网联盟(W3C),其职责是提供网络标准化建议。年,HkonWLie提出层叠HTML样式表(CascadingHTMLStyleSheets,CHSS)。
CHSS既支持用户自定义样式表,也支持网页作者样式表,而且可以满足不同规则以百分比的方式组合使用。但它的权重规则计算方式不够直观,当不同规则混合时会得到什么实际效果并不容易从代码中看出。
年,出现了与CSS语法很像的PSL96(PresentationSpecificationLanguage)。PSL96除表达样式外,也支持条件判断等功能,还可根据对浏览器信息的判断来使用不同的样式,但未获得青睐。
年,哈肯·维姆·莱提出了CSS的最初需求。伯特·波斯当时正在设计一个叫做Argo(Argo(webbrowser))的浏览器,他们决定一起合作设计CSS。当时已经有过一些样式表语言的建议了,但CSS是第一个含有“层叠”的语言。
在CSS中,一个文件的样式可以从其他的样式表中继承下来。访问者在有些地方可以使用自定义样式,在其他地方则继承,或“层叠”网页作者的样式。这种层叠的方式使网页作者和访问者都可以灵活地加入自己的设计,混合各人的爱好。
哈肯·莱于年在芝加哥的一次会议上第一次展示了CSS的建议,年他与波斯一起再次展示这个建议。当时W3C刚刚创建,W3C对CSS的发展很感兴趣,为此W3C组织了一次讨论会。哈肯、波斯是这个项目的主要技术负责人。
年底,CSS已经完成。年12月,哈肯·莱与伯特·波斯发布了CSS规范的第1个版本。当时已有的主流浏览器的内核架构完全不适合解析CSS的语法,且漠不关心代码校验,所以CSS等到几年之后才流行起来。
年,浏览器市场份额被微软公司的InternetExplorer和网景公司的NetscapeNavigator两大浏览器巨头所占据。
CSS出现后,微软的IE浏览器走在了逐步实现CSS第1版标准的前列。但是因为不重视问题修补,导致遗留Bug很多,这也使得IE浏览器长期为人们诟病。网景则把重心放在了网页脚本语言的开发上,但很快被微软模仿。网景在90年代末和微软展开的浏览器大战中最终一败涂地,走向破产边缘,但网景也成功推出了日后广泛流行于网页设计中的JavaScript语言。
浏览器大战使得网页设计人员深受其害,因为不同浏览器支持的语法规则不太一样,网页设计人员不得不为IE浏览器和网景浏览器的浏览器分别设计一套网页。
年初,W3C组织了专门接管CSS的工作组。这个工作组开始讨论第1版中没有涉及到的问题,其结果是年5月出版的第2版规则。网页标准计划的7位成员成立了“CSS武士团”(CSSSamurai),指出Opera浏览器和IE浏览器在支持CSS方面存在的诸多问题。
Opera公司着手解决了问题,但微软并未解决。网页标准计划也积极劝说网景公司和Macromedia公司分别改进其产品对CSS标准的支持。
内容
CSS不能单独使用,必须与HTML一起协同工作,为HTML起装饰作用。其中HTML负责设定网页中的内容,CSS设定外观(大小、粗细、颜色、对齐和位置)展现这些元素。CSS可以用于设定页面布局、设定页面元素样式、设定适用于所有网页的全局样式。CSS可以零散地直接添加在要应用样式的网页元素上,也可以集中化内置于网页、链接式引入网页以及导入式引入网页。
CSS最重要的目标是将文件的内容与它的显示方式分隔开来。
在CSS出现前,几乎所有的HTML文件内都包含文件显示的信息,比如字体的颜色、背景样式、如何排列、边缘、连线等等都必须一一在HTML文件内列出,有时重复列出。
CSS使作者可以将这些信息中的大部分隔离出来,简化HTML文件,这些信息被放在一个辅助的,用CSS语言写的文件中。HTML文件中只包含结构和内容的信息,CSS文件中只包含样式的信息。
CSS样式信息可以包含在一个附件中或包含在HTML文件内。访问者可以使用多个样式表,在重复的情况下可以选择其中之一。
这就是CSS的发展历程已经内容。
如果想学习更多科技知识,可以点击