2

我希望用户应该能够在 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;
}

但是新添加的样式未显示在下拉列表中(文本样式)。我还在 rtehtmlarea 配置中启用了“附加内联元素”。我也试过设置showTagFreeClasses等等都没有成功。然后我读到了缓存问题。我删除了 RTE 缓存以及浏览器缓存。还是没有结果。有什么问题?

4

1 回答 1

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 文件必须存在于给定的 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 )

祝你好运!

于 2012-01-05T15:59:20.333 回答