【发布时间】:2013-03-29 17:27:39
【问题描述】:
我注意到 Django CMS 的文本插件呈现的文本是用自己的 CSS 硬编码的,特别是 p 标签。有没有办法删除这种样式?我希望文本继承我正在使用的主题中指定的样式。在 GUI 中似乎没有执行此操作的选项,docs for the text plug-in 中也没有提及。
【问题讨论】:
标签: css django django-cms
我注意到 Django CMS 的文本插件呈现的文本是用自己的 CSS 硬编码的,特别是 p 标签。有没有办法删除这种样式?我希望文本继承我正在使用的主题中指定的样式。在 GUI 中似乎没有执行此操作的选项,docs for the text plug-in 中也没有提及。
【问题讨论】:
标签: css django django-cms
如果您查看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 呈现为:<p style="wanna_strip_this">P1</p><p style="wanna_strip_this">P2</p>...。按照建议添加 div 标签不会改变文本的呈现,因为 p 标签的样式属性仍然会更具体。
p 标签,因为它将具有更高的特异性(或仅使用 !important)
您可以通过在模板目录中创建相同的目录结构和文件名来覆盖每个 CMS 插件的模板。然后你可以控制标记。这个概念与覆盖 Django 中的第 3 方提供的任何其他模板相同。这就像覆盖管理员提供的模板等。
【讨论】: