Bloggerテーマのアップデートでhighlight.jsの表示おかしくなった
僕が使っているのはふじやんさん制作のF-lightと言うBloggerテーマですが、先日のアップデートで本文が中央揃えになりました。適用してみたところ、本文は中央揃えになってくれて、それは構わないのですが、ソースコードも変な位置で中央揃えになり、表示が崩れました。状況を再現した画像を貼っておきます。
highlightjs-line-numbers.jsが怪しい
以前の記事でも書きましたが、僕はソースコードを書く記事が有る場合、highlight.jsというソースコードを綺麗に表示してくれるJavaScriptで書かれたプログラムを使っています。さらに、行番号をつけてくれるhighlightjs-line-numbers.jsというプログラムも使っています。どちらも大変に便利なもので、ブログ作成に欠かせません。過去の記事で、設定を書いてあります。こちらです。
初め、表示が乱れてしまって途方に暮れました。実際のソースコードが記載されているはずのpre
の部分にCSSで指定をしても効きませんでした。
公式ページのCSS指定方法で解決
highlightjs-line-numbers.jsのGitHub公式ページには、CSSの指定方法が具体的に書いてありました。そちらの部分をそのまま貼り付けます。
/* for block of numbers */
.hljs-ln-numbers {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-align: center;
color: #ccc;
border-right: 1px solid #CCC;
vertical-align: top;
padding-right: 5px;
/* your custom style here */
}
/* for block of code */
.hljs-ln-code {
padding-left: 10px;
}
/* for block of numbers */
と書いてある通り、行番号の部分はこちらで指定されます。つまり、CSSでクラス名hljs-ln-numbersが行番号に付いているため、CSSでは.hljs-ln-numbers
で指定すればいいですし、実際のソースコードにはクラス名hljs-ln-codeが行番号に付いているため、CSSでは.hljs-ln-code
で指定すればいいです。僕はここに、左揃えを意味するtext-align: left;
を入れました。これで元に戻りました。
.hljs-ln-code {
padding-left: 10px;
/* これで元通り左揃えに戻る */
text-align: left;
}
普通に指定しても効かない部分、padding
公式ページに書いてある通り、hljs-ln-code
のクラス名を付けてCSSを指定してやるのですが、装飾に必要なpadding
だけは普通に指定するだけでは装飾が効きませんでした。行番号とソースコードをどれだけ離すかを決めるわけですから、一番重要なんですが、出来ません。何でなのかは分かりません。僕の環境だけかもしれません。その場合はCSSに詳しい人には常識かもしれませんが、!important
を付けましょう。それで出来ました。
.hljs-ln-code {
padding-left: 10px !important;
/*これを付けると優先的に効いてくれる*/
text-align: left;
}
まとめ
highlightjs-line-numbers.jsのGitHub公式ページにCSSの設定については書いてありますが、日本語の内容はあまり無いので記載しておきました。どなたかの役に立てば幸いです。
コメントを投稿
別ページに移動します