- 2ケタ以上の行番号が1文字づつに改行されてしまう。
行番号として機能していない状態になっている。 - ソースコード側に予期しない改行が入ってしまうのだが行番号が増えない。
結果として行番号がずれたり、後ろの方に行番号のない行ができたりする。
原因は、どうも Chrome が CSS を解釈する際の Padding の解釈に起因していた模様。
Syntax Highlighter は 「 3.0.83 (July 02 2010) 」 のままなので、 Chrome 側のリリースに基づく模様。また、現在問題がないのも Chrome が何か修正したのだろうか?
回避策は、Syntax Highlighter の スクリプトを記述した後に
<!-- for Chrome --> <style type="text/css"> .syntaxhighlighter table td.gutter .line { padding: 0 6px 0 13px !important; } .syntaxhighlighter table td.code .line { padding: 0 !important; } .syntaxhighlighter .gutter { padding-right: 1em !important; } .syntaxhighlighter table { padding-bottom: 1px !important; } </style>を記述している。 今、このページでは、HTML/Script ガジェットで書いているので、 カスタマイズ分を含めるとこんな感じ。
<script type='text/javascript'> function loadCss(url) { var headElem = document.getElementsByTagName('head')[0] var linkElem =document.createElement("link") linkElem.rel = "Stylesheet" linkElem.type = "text/css" linkElem.href = url headElem .appendChild(linkElem) } loadCss("http://alexgorbatchev.com/pub/sh/current/styles/shCore.css"); loadCss("http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css"); </script> <script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type='text/javascript' ></script> <script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js" ></script> <script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js" ></script> <script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js" ></script> <script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushScala.js" ></script> <script type="text/javascript" src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js" ></script> <script language='javascript' type="text/javascript"><!-- SyntaxHighlighter.config.bloggerMode = true; SyntaxHighlighter.defaults['toolbar'] = false; SyntaxHighlighter.defaults['class-name'] = 'syntaxhighlight' ; SyntaxHighlighter.all(); // --> </script> <!-- for Chrome --> <style type="text/css"> .syntaxhighlighter table td.gutter .line { padding: 0 6px 0 13px !important; } .syntaxhighlighter table td.code .line { padding: 0 !important; } .syntaxhighlighter .gutter { padding-right: 1em !important; } .syntaxhighlighter table { padding-bottom: 1px !important; } </style> <style type="text/css"> .syntaxhighlight { border:3px solid #bbbbff; width:auto;border-radius:5px; padding: 3px 0px; } </style>
最近の Chrome のWindows Platform の Stable アップデートを見るとこんな感じになっている。
2012年12月
Release | version |
---|---|
2012/12/17 | 23.0.1271.101 |
2012/12/11 | 23.0.1271.97 |
2012年11月
Release | version |
---|---|
2012/11/29 | 23.0.1271.95 |
2012/11/26 | 23.0.1271.91 |
2012/11/06 | 23.0.1271.64 |
Chrome は頻繁にアップロードされているので何が原因なのかわからないが、 少なくとも本件に関する記述はざっと見たところなさそうな感じ。
本回避策に関しては、
-
ChromeでSyntaxHighlighterの表示が崩れる問題の対処方法
- blog 渓鉄 -
0 件のコメント:
コメントを投稿