2

すべてのページのスタイルを動的に変更しようとしていますが、 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>

if-not パスを組み合わせて記述し、スタイルを動的に変更する方法についてのヘルプをいただければ幸いです。不足している終了タグを追加しましたが、まだ機能しません。

4

3 に答える 3

3

rules.xml ファイルにいくつかのエラーがあるようです。

a) replace には content および theme 属性が必要です。http://docs.diazo.org/en/latest/basic.html#replaceを参照

b) 通常、css を rules.xml ファイルに入れません。そして、それが上に挿入された方法は機能しません

c) if-path 条件は URL の一部で機能します。そして、あなたは体の特定のクラスをテストしています。あなたはむしろそれらの1つに行きたいです

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

( http://docs.diazo.org/en/latest/advanced.html#conditions-based-on-pathsを参照)

最良の出発点は、ドキュメント http://pypi.python.org/pypi/plone.app.themingをざっと読むことです

plone.org で diazo テーマの 1 つをテンプレートとしてダウンロードします http://plone.org/products?getCategories=themes&getCompatibility=Plone+4.1&SearchableText=diazo

http://docs.diazo.orgでさまざまなルールを調べてください

于 2012-03-05T07:57:08.187 に答える
1

この問題を解決するには、Diazo が適切なツールではないと思います。次の CSS を試してください。

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

Plone のセクション css クラスの良いところは、特定のセクションでルールをターゲットにしながら、サイト全体の単一の CSS ファイルを作成できることです。

于 2012-03-05T19:10:22.850 に答える
0

フロントページが「フロントページ」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_viewを指定すると、自宅の@@manage-portlets画面でスクランブルをかけないようにすることができます。

于 2012-06-08T03:09:54.943 に答える