使用if not路径并一起动态修改样式plone.app.theming

使用if not路径并一起动态修改样式plone.app.theming,plone,diazo,Plone,Diazo,我正在尝试使用Plone.app.theming diazo动态更改每个页面上的样式,但Plone的首页除外 到目前为止,我已经拼凑了这个,但它打破了我的主题: <replace css:content="#some-div" if-path="not(body.section-front-page)" <style type="text/css"> #some-div { margin: 0 2.25em } </style> </replace>

我正在尝试使用Plone.app.theming diazo动态更改每个页面上的样式,但Plone的首页除外

到目前为止,我已经拼凑了这个,但它打破了我的主题:

<replace css:content="#some-div" if-path="not(body.section-front-page)"
<style type="text/css">
#some-div { margin: 0 2.25em }
</style>
</replace>
如果您有任何关于如何编写组合(如果没有)路径和动态修改样式的帮助,我们将不胜感激!
添加了缺少的结束标记,仍然不起作用。

对我来说,rules.xml文件中似乎有几个错误

替换需要内容和主题属性。 看

b您通常不会将css放入rules.xml文件中。而且上面插入的方式不起作用

c如果路径条件对url的某些部分起作用。你在测试身体的某一类。 你宁愿去买一个

if-path="/front-page" 
if-content="body.section-front-page"

最好的起点是浏览文档

在plone.org上下载一个重氮主题作为模板


然后在

上查找不同的规则。对于我来说,rules.xml文件中似乎有几个错误

替换需要内容和主题属性。 看

b您通常不会将css放入rules.xml文件中。而且上面插入的方式不起作用

c如果路径条件对url的某些部分起作用。你在测试身体的某一类。 你宁愿去买一个

if-path="/front-page" 
if-content="body.section-front-page"

最好的起点是浏览文档

在plone.org上下载一个重氮主题作为模板


上查找不同的规则我不认为Diazo是解决此问题的正确工具,请尝试以下CSS:

#some-div { margin: 0 2.25em }
body.section-front-page #some-div { margin: 0 }

Plone的section css类的好处在于,它允许您为整个站点编写一个css文件,同时仍然针对特定的部分制定规则。

我认为Diazo不是解决此问题的正确工具,请尝试以下css:

#some-div { margin: 0 2.25em }
body.section-front-page #some-div { margin: 0 }

Plone的section css类的好处在于,它允许您为整个站点编写一个css文件,同时仍然针对特定部分制定规则。

假设您的首页是一个带有“front page”id的文档,那么您可以执行以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<rules
    xmlns="http://namespaces.plone.org/diazo"
    xmlns:css="http://namespaces.plone.org/diazo/css">

  <rules css:if-content="body.section-front-page.template-document_view)">
  <!-- here you put rules for the front page only -->
  </rules>

  <rules css:if-content="body:not(.section-front-page.template-document_view)">
    <after css:content-children="head">
      <style>
      #some-div { margin: 0 2.25em; }
      </style>
    </after>
  </rules>

</rules>

例如,指定.template-document\u视图可以帮助您避免在主页上乱动@@manage portlets屏幕。

假设您的首页是一个带有“首页”id的文档,那么您可以执行以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<rules
    xmlns="http://namespaces.plone.org/diazo"
    xmlns:css="http://namespaces.plone.org/diazo/css">

  <rules css:if-content="body.section-front-page.template-document_view)">
  <!-- here you put rules for the front page only -->
  </rules>

  <rules css:if-content="body:not(.section-front-page.template-document_view)">
    <after css:content-children="head">
      <style>
      #some-div { margin: 0 2.25em; }
      </style>
    </after>
  </rules>

</rules>

例如,指定.template-document\u视图可以帮助您避免在主页上乱动@@manage portlets屏幕。

在您的情况下,您似乎错过了关闭。这是否也存在于rules.xml中,或者只是复制/粘贴错误?另外,您确定要对内容使用替换吗?它将用id=content替换dom元素,并使用此标记。这对我来说没有多大意义。您似乎错过了条件中的结束。这是否也存在于rules.xml中,或者只是复制/粘贴错误?另外,您确定要对内容使用替换吗?它将用id=content替换dom元素,并使用此标记。这对我来说没有多大意义。我希望有人能为我编写代码,因为我似乎无法这样做。你说你通常不会将css放入规则xml中,那么为什么Diazo的网站上会有这样的内容呢?动态修改主题Diazo允许您使用规则文件中的“内联”标记修改主题。您可以将此视为规则,其中匹配的内容在规则文件中显式声明,而不是从正在设置样式的响应中提取出来。/*在rules*/body>h1{color:red;}中,Diazo允许您使用CSS选择器来选择要操作的HTML块,但Diazo规则文件不是使用CSS进行HTML实际样式设置的地方,这仍然是在CSS中正常进行的。您可能想更仔细地阅读Diazo文档,以了解Diazo如何在Plone的模板输出和您自己的自定义HTML模板之间转换HTML。是的,我理解。我的所有样式都在css文件中。我没有把任何样式,除了一个在规则文件。我这样做是因为我只想在一个页面上动态更改css中指定的div的先前样式。换句话说,对于这一页上的一个div,我希望更改样式,但是在所有其他页上,div从css文件中获取样式。我需要知道如何在rules.xml中为特殊情况编写代码。我希望有人能为我编写代码,因为我似乎无法这样做。你说你通常不会将css放入规则xml中,那么为什么Diazo的网站上会有这样的内容呢?动态修改主题Diazo允许您使用规则文件中的“内联”标记修改主题。您可以将此视为规则,其中匹配的内容在规则文件中显式声明,而不是从正在设置样式的响应中提取出来。/*根据规则*/body>h1{color:red;}重氮让你
使用CSS选择器来选择要操作的HTML块,但是Diazo规则文件不是使用CSS进行HTML实际样式设置的地方,这仍然是在CSS中正常进行的。您可能想更仔细地阅读Diazo文档,以了解Diazo如何在Plone的模板输出和您自己的自定义HTML模板之间转换HTML。是的,我理解。我的所有样式都在css文件中。我没有把任何样式,除了一个在规则文件。我这样做是因为我只想在一个页面上动态更改css中指定的div的先前样式。换句话说,对于这一页上的一个div,我希望更改样式,但是在所有其他页上,div从css文件中获取样式。我需要知道如何在rules.xml中为特殊情况编写该选项。不幸的是,该选项在Plone 4中不再存在,这就是我尝试规则方法的原因。css类仍然设置在Plone 4的主体上。您能否更具体地说明该选项不再可用的原因?getsectionURL不是您的意思吗。第节用于此。我正在尝试在rules.xml而不是getsectionURL方法中执行此操作。它在Plone 4.getSectionURL中被Plone_布局视图的bodyClass方法所取代,但是仍然非常支持设置包含section类的bodyClass。diazo中的if-path内容主要用于其他系统,这些系统没有与Plone的body类等效的类。不幸的是,Plone 4中不再存在该选项,这就是我尝试规则方法的原因。css类仍然设置在Plone 4中的body上。您能否更具体地说明该选项不再可用的原因?getsectionURL不是您的意思吗。第节用于此。我正在尝试在rules.xml而不是getsectionURL方法中执行此操作。它在Plone 4.getSectionURL中被Plone_布局视图的bodyClass方法所取代,但是仍然非常支持设置包含section类的bodyClass。重氮中的if路径主要用于其他系统,这些系统没有普隆身体类的等价物。