用于编译层叠样式表的方法和设备的制作方法

文档序号:6354418阅读:254来源:国知局
专利名称:用于编译层叠样式表的方法和设备的制作方法
技术领域
本发明的实施方式总体上涉及网络信息技术,更具体地,涉及用于编译层叠样式表的方法和设备。
背景技术
随着网络技术的发展,层叠样式表(Cascading Style Sheet,简称CSS)已成为现代网络信息技术的ー个重要组成部分。CSS可以作为単独的文件而存在,也作为代码段被包含在相应Web页面的源代码文件(例如,超文本链接语言HTML文件)之中。CSS可用于定义ー组与Web页面的绘制和呈现有关的规则,以用于控制Web页面的外观和/或用户交互。 例如,CSS文件可以限定Web页面中的字体、字号、超级链接的样式、对各种用户交互事件的响应,等等。通过使用CSS来设置Web页面的格式,可实现Web页面的内容与表现形式的分离。Web页面内容存放在HTML文档中,而用于定义表现形式的CSS规则存放在另ー个文件中或HTML文档的某一部分(通常为文件头部分)。这样不仅可使维护站点的外观更加容易,而且还可以使HTML文档代码更加简练,缩短浏览器的加载时间。此外,CSS的使用还有利于Web页面的修改,便于Web页面风格的统一。然而,目前在CSS的开发和使用中,始终存在浏览器的兼容性问题。具体而言,某些老旧类型的浏览器对CSS的支持能力有限,无法按照CSS中指定的样式来绘制和呈现Web页面。此外,某些新型浏览器的页面呈现属性需要用到特殊的CSS声明方式才会生效。这导致需要书写大量的兼容不同浏览器的代码。举例而言,考虑下面表I中示出的示例性CSS代码,其用于设置Web页面的页面宽度。在表I所示的示例中,由于不同类型浏览器(诸如,IE6、IE7等)以及不同模式(诸如,Gecko内核模式、webkit内核等)的存在,CSS的开发人员必须在层叠样式表中显式地包含针对不同类型浏览器和/或操作模式而编写的不同代码,尽管这些代码本质上都涉及相同的页面属性。
表I由于CSS的开发和使用中存在的上述缺陷,在现有技术中,大量的人力、物カ和时间资源被花费用于编写针对不同类型目标浏览器但涉及相同属性的代码。这显然还会增加开发人员的学习成本。此外,在使用例如表I所示的现有技术CSS时,每个目标浏览器都必须读取CSS中包含的所有代码,包括自己无法解析的那些,这可能显著影响浏览器执行效率,并且增加了 CSS文件的尺寸,增加了网络传输负担。

发明内容
为了克服现有技术中的上述缺陷,本发明的实施方式提供用于编译层叠样式表的方法和设备。在本发明的ー个方面,提供ー种用于对层叠样式表进行编译的方法,包括对读取自所述层叠样式表的代码进行解析;以及根据所述解析的结果对所述层叠样式表进行特定于浏览器的编译。在本发明的可选实施方式中,所述解析包括确定所述层叠样式表中包含的针对不同类型浏览器的、涉及相同属性的代码段;并且其中所述编译包括将所述代码段改写为新代码段,使得每个新代码段仅包含针对特定类型浏览器的代码。在本发明的可选实施方式中,该方法还包括生成新层叠样式表,使得每个新层叠样式表包含所述新代码段。在本发明的可选实施方式中,所述解析包括确定所述层叠样式表中包含的涉及特定类型浏览器无法支持的属性的代码段;并且其中所述编译包括向所述代码段添加针对所述特定类型浏览器的代码,或者删除所述代码段。在本发明的可选实施方式中,所添加的代码可包含脚本。在本发明的可选实施方式中,所述解析进ー步包括获取与所述层叠样式表相关联的配置信息。此时,所述解析和编译根据所述配置信息来执行。在本发明的另一方面,提供ー种用于对层叠样式表进行编译的设备,包括解析装置,配置用于对读取自所述层叠样式表的代码进行解析;以及编译装置,配置用于根据所述解析的结果对所述层叠样式表进行特定于浏览器的编译。
根据本发明的各种实施方式,可以针对特定的目标浏览器自适应地编译(优化)层叠样式表,从而克服上文提及的兼容性问题。这样,目标浏览器只需关注对它而言有效的代码,从而降低了 Web页面的呈现和绘制过程中出现错误的概率,并且提高了效率。此外,根据本发明的实施方式,可以对已有的大量层叠样式表进行处理,并且开发人员可以继续按照已有的开发习惯来开发层叠样式表,避免增加额外的学习成本。


通过參考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中图I示出了根据本发明示例性实施方式的用于编译层叠样式表的方法100的流程图;图2示出了根据本发明示例性实施方式的用于编译层叠样式表的设备200的框图;以及图3示出了适合用来实践本发明实施方式的计算机系统300的框图。在附图中,相同或对应的标号表不相同或对应的部分。
具体实施例方式下面将參考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。如上文所述,根据本发明的实施方式,提供一种用于编译层叠样式表CSS的方法和设备,用于针对特定的目标浏览器自适应地编译(优化)层叠样式表,从而现有技术中存在的兼容性问题。以此方式,目标浏览器只需关注对它而言有效的代码,降低了 Web页面的呈现和绘制过程中出现错误的概率,并且提高了效率。此外,根据本发明的实施方式,可以对已有的大量层叠样式表进行处理。注意,在下文描述中使用的术语“特定于浏览器的编译”和“定制编译”表达相同的含义,并由此可互換使用。下面结合附图以示例的方式详细描述本发明的各种实施方式。首先參考图1,其示出了根据本发明实施方式的用于编译层叠样式表的方法100的流程图。应当理解,方法100中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法100可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。方法100开始之后,在步骤S 102,获取与待处理的层叠样式表相关联的配置信息。如上文所述,本发明的主要目的之一是通过修改层叠样式表中涉及某些属性的代码,来克服浏览器兼容性的问题。但是,如本领域已知的,某些属性对于Web页面的呈现可能具有比较关键或重要的作用,修改这些属性可能导致Web页面的呈现和/或行为发生异常。换言之,对某些CSS属性的定制编译可能给Web页面带来一定程度的副作用,例如不安全和不稳定。因此,根据本发明的优选实施方式,允许开发人员在编写CSS文件的同时,提供与该CSS文件相关联的配置信息,用以指示例如该CSS文件中的哪些部分和/或在使用哪些类型的浏览器执行该CSS时,应当执行定制编译。特别地,根据本发明的实施方式,可以通过此类配置信息来规定针对某些CSS属性进行定制编译,而针对另ー些CSS属性进行常规处理。參见下面的表2,其示出根据本发明一种实施方式的配置信息的示例。在此例中,用户(例如,CSS的开发人员)可以利用表中所示的自定义标签来规定仅对该CSS中包含的指定属性(position, min-height, float)
执打定制编译。
权利要求
1.一种用于对层叠样式表CSS进行编译的方法,包括 对读取自所述层叠样式表的代码进行解析;以及 根据所述解析的结果对所述层叠样式表进行特定于浏览器的编译。
2.如权利要求I所述的方法,其中 所述解析包括 确定所述层叠样式表中包含的针对不同类型浏览器的、涉及相同属性的代码段;并且其中 所述编译包括 将所述代码段改写为新代码段,使得每个新代码段仅包含针对特定类型浏览器的代码。
3.如权利要求2所述的方法,还包括 生成新层叠样式表,使得每个新层叠样式表包含所述新代码段。
4.如权利要求I所述的方法,其中 所述解析包括 确定所述层叠样式表中包含的涉及特定类型浏览器无法支持的属性的代码段;并且其中 所述编译包括 向所述代码段添加针对所述特定类型浏览器的代码;或者删除所述代码段。
5.如权利要求4所述的方法,其中所添加的代码包含脚本。
6.如任一在前权利要求所述的方法,进一步包括 获取与所述层叠样式表相关联的配置信息; 并且其中,所述解析和编译根据所述配置信息来执行。
7.一种用于对层叠样式表CSS进行编译的设备,包括 解析装置,配置用于对读取自所述层叠样式表的代码进行解析;以及 编译装置,配置用于根据所述解析的结果对所述层叠样式表进行特定于浏览器的编译。
8.如权利要求7所述的设备,其中 所述解析装置进一步包括配置用于确定所述层叠样式表中包含的针对不同类型浏览器的、涉及相同属性的代码段的装置;并且其中 所述编译装置进一步包括配置用于将所述代码段改写为新代码段以使得每个新代码段仅包含针对特定类型浏览器的代码的装置。
9.如权利要求8所述的设备,还包括 CSS生成装置,配置用于生成新层叠样式表使得每个新层叠样式表包含所述新代码段。
10.如权利要求7所述的设备,其中 所述解析装置包括配置用于确定所述层叠样式表中包含的涉及特定类型浏览器无法支持的属性的代码段的装置;并且其中所述编译装置包括 代码添加装置,配置用于向所述代码段添加针对所述特定类 型浏览器的代码;以及代码删除装置,配置用于删除所述代码段。
11.如权利要求10所述的设备,其中所添加的代码包含脚本。
12.如权利要求7-11任一项所述的设备,进一步包括 配置信息获取装置,配置用于获取与所述层叠样式表相关联的配置信息; 并且其中,所述解析装置和编译装置分别配置用于根据所述配置信息来执行所述解析和编译。
全文摘要
本发明的实施方式涉及用于编译层叠样式表的方法和设备。具体地,公开了一种用于对层叠样式表CSS进行编译的方法,包括对读取自所述层叠样式表的代码进行解析;以及根据所述解析的结果对所述层叠样式表进行特定于浏览器的编译。本发明的实施方式还公开了相应的设备。根据本发明的实施方式,可以有效地解决层叠样式表的浏览器兼容性问题。
文档编号G06F9/45GK102637135SQ201110037319
公开日2012年8月15日 申请日期2011年2月9日 优先权日2011年2月9日
发明者李靖威 申请人:北京千橡网景科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1