我希望用户能够在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配置中启用了“additonal inline elements”。我也尝试设置showTagFreeClasses
等等但没有成功。然后我读到了缓存问题。我删除了RTE缓存以及浏览器缓存。仍然没有结果。什么可能是错的?
答案 0 :(得分:4)
你基本上走在正确的轨道上了!
我在使用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文件必须存在,必须包含您要提供的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 )
祝你好运!