ckeditor中的自定义字体

时间:2011-09-14 13:35:20

标签: ckeditor

我正在尝试添加自定义字体但不能。我收到以下代码的错误,字体名称是在下拉列表中添加,但它没有改变......

我的代码是

config.js:

CKEDITOR.editorConfig = function( config )
{
config.contentsCss = 'fonts.css';
config.font_names = 'Dekers/dekers_true' + config.font_names;
}

fonts.css:

@font-face {  
font-family: "dekers_true", serif;
src: url(fonts/Dekers_light.eot ); /* IE */  
src: local("Dekers"), url("fonts/Dekers_light.ttf") format("truetype"); /*non-IE*/  
}

3 个答案:

答案 0 :(得分:6)

您的自定义CSS文件必须包含CKEditor正文的基本样式。 CKEditor仅在此CSS文件中加载iframe。

@font-face {  
    font-family: "dekers_true"; /* font name for the feature use*/
    src: url(fonts/Dekers_light.eot ); /* IE */  
    src: local("Dekers"), url("fonts/Dekers_light.ttf") format("truetype"); /*non-IE*/  
}
body {
    font: normal 13px/1.2em dekers_true, serif;
    color: #333;
}
p {
    font: normal 13px/1.2em dekers_true, serif;
    margin-top: 0;
    margin-bottom: 0.5em
}
...

然后将字体声明添加到主站点的CSS文件中。

更新替代变体。 您可以声明自定义样式,例如

config.stylesSet = [
    { name : 'Pretty font face', element : 'span', attributes : { 'class' : 'pretty_face' } },
    ... 
];

因此,将应用类.pretty_face,您可以根据需要设置样式。如果您想立即预览rte,您还需要在contentsCSS文件中设置此类的样式。

答案 1 :(得分:5)

在config.js中的OR

config.font_names = 'Arial/Arial, Helvetica, sans-serif;' +
    'Comic Sans MS/Comic Sans MS, cursive;' +
    'Courier New/Courier New, Courier, monospace;' +
    'Georgia/Georgia, serif;' +
    'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +
    'Tahoma/Tahoma, Geneva, sans-serif;' +
    'Times New Roman/Times New Roman, Times, serif;' +
    'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +
    'Verdana/Verdana, Geneva, sans-serif;' + 
    **'Dekers/dekers_true';**

然后你的CSS。 上面将它放在样式下拉列表中,而不是字体。

答案 2 :(得分:0)

如果您使用的是托管字体,并且具有相对简单的用例,则只需将样式表直接添加到config.contentCss

config.contentsCss = [ '/css/mysitestyles.css', 'https://fonts.googleapis.com/css?family=Roboto' ]

第一个文件定义了样式(例如.title { font-family: 'Roboto', sans-serif;),第二个文件是包含字体定义的远程样式表。

现在,自定义字体应该出现在下拉菜单和编辑器中,前提是您已在config.styleSet中定义了可选样式:

config.styleSet = [ { 'name': 'Title', 'element': 'h1', 'attributes': { 'class': 'title' } ]

我使用CKEditor Django插件对此进行了测试,该语法与上面的语法略有不同,但是我看不出它不会翻译的任何原因。