- 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 件のコメント:
コメントを投稿