z-blog SyntaxHighlighter 长代码无法换行解决办法(基于jquery)
内容摘要
用SyntaxHighlighter 语法高亮插件的朋友可能都遇到过代码显示不换行的问题,这个问题在网上也找不到什么解决办法,一直困扰了我很久,今天算是把它解决了,办法其实简单,下面说下..
文章正文
用SyntaxHighlighter 语法高亮插件的朋友可能都遇到过代码显示不换行的问题,这个问题在网上也找不到什么解决办法,一直困扰了我很久,今天算是把它解决了,办法其实简单,下面说下...
解决方法:
打开shCoreDefault.css文件,找到对.syntaxhighlighter textarea的定义,在最后加上一句:word-break:break-all !important;就ok了,意思是让代码强制换行显示。
由于每个人调用的css不同,大家可以根据自己的需要修改css
测试发现对于3.08版本无效,大家可以参考下面的方法
由于我的博客主要是代码分享,很多贴的代码,都很长。很多时候我都是手动给他换行。
但是今天实在是受不了。从网上找个办法解决一下。
1、css修改:
在文件夹:\zb_system\ADMIN\ueditor\third-party\SyntaxHighlighter
在文件shCoreDefault.pack.css添加css:
1 2 3 4 5 6 | body .syntaxhighlighter .line{ white-space: pre-wrap !important; } .syntaxhighlighter{ width:100%!important;margin:.3em 0 .3em 0!important;position:relative!important;overflow:auto!important;background-color:#f5f5f5!important;border:1px solid #ccc!important;word- break : break -all; } |
2、Jquery代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | $( function () { // Line wrap back var shLineWrap = function () { $( '.syntaxhighlighter' ).each( function () { // Fetch var $sh = $(this), $gutter = $sh .find( 'td.gutter' ), $code = $sh .find( 'td.code' ) ; // Cycle through lines $gutter .children( '.line' ).each( function (i) { // Fetch var $gutterLine = $(this), $codeLine = $code .find( '.line:nth-child(' + (i + 1) + ')' ) ; //alert($gutterLine); // Fetch height var height = $codeLine .height() || 0; if (!height) { height = 'auto' ; } else { height = height += 'px' ; //alert(height); } // Copy height over $gutterLine .attr( 'style' , 'height: ' + height + ' !important' ); // fix by Edi, for JQuery 1.7+ under Firefox 15.0 console.debug( $gutterLine .height(), height, $gutterLine .text(), $codeLine ); }); }); }; // Line wrap back when syntax highlighter has done it's stuff var shLineWrapWhenReady = function () { if ($( '.syntaxhighlighter' ).length === 0) { setTimeout(shLineWrapWhenReady, 10); } else { shLineWrap(); } }; // Fire shLineWrapWhenReady();}); |
上面的代码就是属于长代码。大家看看是不是都换行了??
现在,行号的高度就能和代码的高度保持一致了。
代码注释