Ideal Reality

興味の赴くままに

highlightjs-line-numbers.jsをcssで装飾する際の注意点

Contents
スポンサーリンク

ソースコードはtableで表現される

highlight.jsだけだと<code> ~ </code>内の文字列がspanで装飾されるだけでしたが、highlightjs-line-numbers.jsでは、それをtable要素で段組みして行頭に番号を付けています。

この際、一般のtableを装飾するcssを入れていると、それがソースコードにも反映されて表示が崩れます。

だからといって、tableのcssを消すわけにはいかないので、.hljs-lnのスタイルに、元々のtableの装飾を打ち消すようなスタイルの指定が必要です。

行番号の横に線を入れる

.hljs-ln-numbersにborder-rightを指定しましょう。

.hljs-ln-nにborder-rightを入れてしまうと、ソースコード内に全角文字があった場合に、線の行間位置に隙間が空いてしまいます。

ちなみに、行番号と線の間隔は.hljs-ln-numbersのpadding-rightで、線とコードの間隔は.hljs-ln-codeのpadding-leftで指定してやるとうまくいきます。

スポンサーリンク

横スクロールで右側のpaddingがなくなる

1行が長い場合に横スクロールになるのですが、この際になぜか右側のpaddingがなくなります。

ネットで調べて擬似要素とか色々やってみたけど効果がなく、結局当サイトでは.hljs-ln-codeにpadding-rightを指定する形にしました。

iPhoneでフォントサイズが大きくなる

どうやらSafariのフォントサイズ自動調節機能が働いているみたいです。

body {
    -webkit-text-size-adjust: 100%;
}

こんな感じでbody要素に-webkit-text-size-adjust: 100%;を指定すればOKです。

参考

iPhone版Safariでフォントサイズがおかしくなる問題 - Web関連あれこれ

PC版は全く問題ないのに。。iPhoneで表示確認するとちゃんと、 文字サイズ指定したのに、大きくなったり小さくなったり。。 文字サイズにバラつきが出る問題。。 解決方法 結論から言うと↓で直ります。 body { -webkit-text-size-adjust: 100%; } どうやら、iPhoneの文字サイズ自動調節機能が効いてしまっているようです。 自動調整を行わないようにする指定が↑こちらになります。 ちなみに、 webkit-text-size-adjust: none; だと文字の拡大ができなくなるのでNGです。 WebKitのバグのようです。。 リセットcssに入れておくとい…

スポンサーリンク

コメント

投稿されたコメントはありません

名前

メールアドレス(任意)

コメント

関連する投稿