我希望用户能够在 RTE 中选择文本样式,例如“详细信息”、“重要信息”、“人员姓名”等。所以我想定义一个 CSS 并且这个选项应该在 RTE 中显示。 CSS 样式应该是 span
并且仅设置颜色。
目前我有以下代码:
RTE.classes{
highlight{
name = test
value = color:#0A8AD2;
}
}
RTE.default{
ignoreMainStyleOverride = 1
useCSS = 1
contentCSS = fileadmin/templates/css/rte_formats.css
classesCharacter := addToList(highlight)
classesParagraph := addToList(highlight)
proc.allowedClasses := addToList(highlight)
}
CSS文件的内容是
span.highlight, p.highlight {
color:#0A8AD2;
}
但是新添加的样式未显示在下拉列表中(textstyle)。我还在 rtehtmlarea 配置中启用了“附加内联元素”。我还尝试设置 showTagFreeClasses 等,但没有成功。然后我读到了缓存问题。我删除了 RTE 缓存以及浏览器缓存。还是没有结果。可能出了什么问题?
最佳答案
你基本上走在正确的轨道上!
我在使用 inlineStyle 时遇到了很多问题。其中之一是您必须显式取消定义 contentCSS
才能使内联工作(仅设置 ignoreMainStyleOverride = 0
是不够的!):
RTE.default.contentCSS >
我个人更喜欢专用的外部 CSS 文件。需要了解的重要一点是,TYPO3 RTE 确实会解析此 CSS 文件,并且仅提供实际在其中找到的那些类!
因此,您必须使用 contentCSS
参数来定义 CSS,并且该 CSS 必须确实包含您希望向用户提供的类。以下是您必须如何定义它:
# TS-Config
RTE.default.ignoreMainStyleOverride = 1
RTE.default.contentCSS = fileadmin/templates/css/rte_formats.css
CSS 文件必须存在在给定的 URL 处,并且它必须包含您想要提供的 CSS 类的定义(正如所说的 CSS 文件确实被解析)并且缺少的类不会显示在下拉选择器中):
/* content of rte_formats.css */
/* span. needed for RTE.default.classesCharacter */
/* p. needed for RTE.default.classesParagraph */
span.highlight, p.highlight{ color:#0A8AD2; }
还有一个提示:
我建议不要用您自己的类名覆盖 allowedClasses,而是附加到它们:
RTE.default.proc.allowedClasses := addToList( highlight, myOtherClass, myThirdClass )
祝你好运!
关于css - TYPO3:如何向 RTE 添加元素,允许用户使用定义的 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8741063/