重氮 - 替换css属性

时间:2013-10-18 16:30:16

标签: plone diazo

我正在尝试使用Diazo replaceattributes规则替换一些CSS样式,但到目前为止我还没有弄明白。

到目前为止,我成功地使用了replacecopybeforeafterdrop规则来css:contentcss:themecss:content-childrencss: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-12col-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文档,但还没有能够解决这个问题。

任何帮助将不胜感激,如果我在得到答复之前弄明白这一点,我会更新我的问题

感谢。

2 个答案:

答案 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