css - TYPO3:如何向 RTE 添加元素,允许用户使用定义的 CSS 类

标签 css typo3 typoscript rte

我希望用户能够在 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/

相关文章:

menu - Typo3 列出所有子页面的内容作为父页面的内容

javascript - 如何在具有自定义高度和宽度的新弹出窗口上更改窗口标题

html - 标题元素在小屏幕上不对齐

css - 渐变全尺寸背景 CSS

typo3 - Typoscript 在 include_typoscript 中使用常量

menu - 通过 Typoscript 基于文本的语言菜单

css - CSS3 有不同的标记吗?

typo3 - 从 TYPO3 6.1 中的 Extbase 映射到 "pages"表

typo3 - 将 locallang 值插入 TypoScript [stdWrap]

typo3 - 以TYPO3 7.6形式切换标签和输入