2013-03-10 83 views
3

我很确定这不存在,但我想知道是否有人做过这种事情作为CSS的附加组件。在CSS文档树上的操作?

比方说,我们有一个包含联邦法规(CFR)的XML文档,并且还说文档本身不能被编辑(我们可以做的只是使用样式表来显示它),并且让我们说有一个包含多个规则分部,以及XML文档大致如下:

<subpart> 
<ruleNo>63.400</ruleNo> 
<ruleTitle>Definitions</ruleTitle> 
<ruleNo>63.410</ruleNo> 
<ruleTitle>Applicability</ruleTitle> 
... 
</subpart> 

现在我想在左边栏写的是使子部分内容到表中的样式,与规则数量和规则标题在右栏。如果有办法选择相邻的ruleNoruleTitle就好像它们对应于单个节点一样,然后为该虚拟节点编写规则,那么该任务将更容易。

例如,有可能是一个节点限定算符=>这将暂时定义为节点在括号中的部分。例如,Rule => subpart > {ruleNo + ruleTitle}将创建临时节点,该临时节点将是任何一对兄弟姐妹ruleNo + ruleTitle的父亲,其是subpart的子女。

+2

在一个简单的例子中(如图所示),您可以使用浮动模拟表格布局。所以重要的是你需要什么样的表格格式。 – 2013-03-10 18:12:57

回答

4

CSS不支持操作文档树,也不支持以您描述的方式对元素节点进行分组的能力。此外,CSS2.1 table model不提供应用样式的方法,以致每对ruleNo + ruleTitle对可以格式化为单独的行:虽然CSS具有可作为祖先或后代创建的匿名框的概念,但也可扩展到表模型,它不支持生成一次充当一对ruleNo + ruleTitle单元格的父行的单个匿名框。

像Sass和LESS这样的预处理语言无论如何都被编译成CSS,所以如果它不能用CSS来完成,那么它也不能用预处理器来完成。

鉴于您当前的XML,不可能使用CSS将其格式化为一个表格,其中每行包含ruleNoruleTitle元素。您需要使用XSLT将其转换为XHTML表格,而不是相应的行。

+0

+1 - XSLT将赋予很大程度的灵活性(尽管是额外的步骤)。 – 2013-03-10 17:53:55