【问题标题】:Strip default CSS from Django CMS从 Django CMS 中去除默认 CSS
【发布时间】:2013-03-29 17:27:39
【问题描述】:

我注意到 Django CMS 的文本插件呈现的文本是用自己的 CSS 硬编码的,特别是 p 标签。有没有办法删除这种样式?我希望文本继承我正在使用的主题中指定的样式。在 GUI 中似乎没有执行此操作的选项,docs for the text plug-in 中也没有提及。

【问题讨论】:

    标签: css django django-cms


    【解决方案1】:

    如果您查看the template used by the text plugin,您会注意到它只是呈现 TinyMCE(或您使用的任何所见即所得编辑器)的内容,因此您看到的标记可能来自那里,而不是模板。

    您可以自己覆盖此模板,方法是在模板文件夹中创建一个text.html 文件(即/templates/cms/plugins/text.html)并添加一个环绕的div

    <div class="cms-text-plugin">{{ body|safe }}</div>
    

    现在您可以使用 CSS 定位元素:

    .cms-text-plugin p{ ... }
    .cms-text-plugin h1{ ... } 
    

    【讨论】:

    • 嗯...这不起作用。 {{ body|safe }} 模板代码将 HTML 呈现为:&lt;p style="wanna_strip_this"&gt;P1&lt;/p&gt;&lt;p style="wanna_strip_this"&gt;P2&lt;/p&gt;...。按照建议添加 div 标签不会改变文本的呈现,因为 p 标签的样式属性仍然会更具体。
    • 那些标签是 TinyMCE 特有的,所以这与 Django 无关。但是,如果您使用 ID 而不是类(如示例中所示),您绝对可以使用您自己的自定义 CSS 来定位那些 p 标签,因为它将具有更高的特异性(或仅使用 !important
    【解决方案2】:

    您可以通过在模板目录中创建相同的目录结构和文件名来覆盖每个 CMS 插件的模板。然后你可以控制标记。这个概念与覆盖 Django 中的第 3 方提供的任何其他模板相同。这就像覆盖管理员提供的模板等。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多