CKEditorでスタイルがうまくかからない場合の対処:備忘録

CKEditorの備忘録。

とある案件で、CMSで吐き出す記事でCKEditor 3を使うことになったのですが、制作会社さんから提供されたcss(とりあえずcommon.cssとしておきます)に、

* {
font-size: 14px;
font-family: "メイリオ", Meiryo
}

のような記述がありました。

一方で、CKEditorでフォントサイズを変更した場合、

<span style="font-size:16px;">文字列文字列ABC文字列文字列</span>

みたいになります。
さらにその中の一部を修飾すると、

<span style="font-size:16px;">文字列文字列<strong>ABC</strong>文字列文字列</span>

のようになります。
すると、strongタグは、前述のcssファイルの

* {
font-size: 14px;
font-family: "メイリオ", Meiryo
}

が効いて、CKEditorで指定したフォントサイズ(strongの親のspan)が無視されてしまいます。
また、フォントにメイリオを指定しているために、イタリック(斜体)の修飾が効きません。

最終的には以下のようにしました。

common.cssのフォント指定からメイリオを外す。
また、ビジュアルエディタのcssで、日本語フォントを明示的に指定して、そこにはメイリオを含めません。

次に、CKEditorの設定ファイルも変更します。
当該ファイルは、ckeditor.jsと同じ階層にあるcontents.css、config.jsです。
config.jsでは、

coreStyles_bold
coreStyles_italic
coreStyles_underline

について、classを吐き出すようにします。
common.cssでは、CKEditorで吐き出したスタイルに対して、

font-size: inherit;
font-weight: inherit;
font-style: inherit;
text-decoration: inherit;

などを指定して、親のエレメントのスタイルを継承するようにします。
場合によっては、さらに、!important を追加する必要があるかも。

とりあえず、これでうまくいきました。

カテゴリー: Webコンテンツ パーマリンク