ワードプレスでリセットCSSがブロックエディタで出力した部分に効いてしまう。

「ワードプレスで、リセットCSSがブロックエディタで出力した部分に効いてしまう。」

という方向けに解決法を書いていきます。

ワードプレスでリセットCSSがブロックエディタで出力した部分に効いてしまう。

最近ワードプレステーマを作っていましたが、一部不具合が見つかり修正してました。

不具合は何かというと、ブロックエディタで出力した部分にまるでCSSが効いてない。見出しも段落も文字の大きさが同じだし、行間が詰まって読みづらい↓

もしやと思い調べると…、やはりリセットCSSが効いてしまってます↓

functions.phpでブロックには最低限のCSSは読み込んでいるはずなのに↓

はぁ~、どうやらリセットCSSを読み込むと上書きされてしまうようです(+_+)↓

解決法

解決法としては、page.phpやsingle.phpファイルの「the_content()」部分をdivで囲い、それにクラス名を付けてスタイルを当てる、という方法をとりました。

page.phpやsingle.phpファイルの「the_content()」部分をdivで囲い、それにクラス名を付ける↓

そのクラス名にスタイルを当てる↓

ブロックエディタ側(一般的にはeditor-style.css)にも同じCSSを書いとくといいですね。ただしこっちにはクラス名は必要なし

これでブロックエディタで出力した部分を見てみると↓

やった!ちゃんとCSSが効いてます(わかりやすく段落の文字色を赤にしてます)。

他の方法は?

今回のやり方はあくまで応急処置的なやり方かもしれません。

私もいろいろ調べてみたのですが、はっきりとした正しいやり方はないようです。

他の方法としては、テーマを作る最初の段階でリセットCSSではなくサニタイズCSSを使うのがいいと思います。

  • リセットCSS:デフォルトのCSSをほぼすべて初期化しブラウザ間の差異をなくす。
  • サニタイズCSS:デフォルトCSSのスタイルは残しつつブラウザ間の差異をなくす。

参考↓

リセットCSS、ノーマライズCSS、サニタイズCSSの違い | Qiita

そうすればデフォルトのCSSは残ります。ワードプレステーマ制作においてはこのやり方がスマートな気がします。

私も次テーマを作るときはこの方法をとると思います。

以上です。

参考にさせていただいた記事↓

ブロックエディタとリセットCSS | teratail

 

タイトルとURLをコピーしました