id: advanced-topics-block-styling

title: 块样式

Editor内,某些块类型被赋予默认的CSS样式,以限制使工程师启动并运行自定义编辑器所需的基本配置量。

通过为Editor定义blockStyleFn prop函数,可以指定应在渲染时应用于块的类。

DraftStyleDefault.css

Draft库在DraftStyleDefault.css中包含默认的块CSS样式。 (请注意,CSS类名称上的注释是Facebook内部CSS模块管理系统的构件。)

这些CSS规则主要致力于为列表项提供默认样式,否则,调用者将负责管理自己的默认列表样式。

blockStyleFn

编辑器上的blockStyleFn prop可让您定义CSS类,以在渲染时对块进行样式设置。 例如,您可能希望用花哨的斜体文本为“blockquote”类型的块设置样式。

  1. function myBlockStyleFn(contentBlock) {
  2. const type = contentBlock.getType();
  3. if (type === 'blockquote') {
  4. return 'superFancyBlockquote';
  5. }
  6. }
  7. // 然后...
  8. import {Editor} from 'draft-js';
  9. class EditorWithFancyBlockquotes extends React.Component {
  10. render() {
  11. return <Editor ... blockStyleFn={myBlockStyleFn} />;
  12. }
  13. }

然后,在您自己的CSS中:

  1. .superFancyBlockquote {
  2. color: #999;
  3. font-family: 'Hoefler Text', Georgia, serif;
  4. font-style: italic;
  5. text-align: center;
  6. }