我正在尝试使用Diazo replace
和attributes
规则替换一些CSS样式,但到目前为止我还没有弄明白。
到目前为止,我成功地使用了replace
,copy
,before
,after
,drop
规则来css:content
, css:theme
,css:content-children
和css:theme-children
。
我目前的标记基于Twitter Bootstrap 3.0,如下所示:
<div class="container">
<div class="row">
<div id="content" class="col-md--8 well">
<p>Plone content here</p>
</div>
</div>
</div>
使用drop
规则我可以从我的#content
<drop attributes="class" css:theme="#theme"/>
但是我无法弄清楚如何添加css类col-12
。col-12
在我的主题中不存在。到目前为止,我已经尝试了以下规则:
<replace attributes="class col-12" css:theme="#theme"/>
<replace attributes="col-12" css:theme="#theme"/>
我有一个copy
规则的示例,其中href
链接是从Plone #portal-logo
复制而来的:
<copy attributes="href" css:content="#portal-logo" css:theme="#logo" />
我觉得我很亲近,而我所需要的只是一个类似的例子。我一直在查看Basic syntax的Diazo文档,但还没有能够解决这个问题。
任何帮助将不胜感激,如果我在得到答复之前弄明白这一点,我会更新我的问题
感谢。
答案 0 :(得分:6)
通常我会使用此规则将森伯斯特网格“映射”为bootstrap(2):
<replace content="//div[contains(@class,'cell')]/@class">
<xsl:attribute name="class">
<xsl:if test='contains(current(),"width-3:4")'>span9</xsl:if>
<xsl:if test='contains(current(),"width-2:3")'>span8</xsl:if>
<xsl:if test='contains(current(),"width-1:2")'>span6</xsl:if>
<xsl:if test='contains(current(),"width-1:3")'>span4</xsl:if>
<xsl:if test='contains(current(),"width-1:4")'>span3</xsl:if>
<xsl:if test='contains(current(),"width-full")'>span12</xsl:if>
</xsl:attribute>
</replace>
希望得到这个帮助。
维托
答案 1 :(得分:0)
我使用的语法如下:
<replace content="//div[@class='row']">
<xsl:attribute name="class"><xsl:value-of select="."/> col-12</xsl:attribute>
</replace>
向元素添加类。
这个应该将课程col-12
(并保留现有的row
课程)添加到内容中div
作为课程的所有row
。