15

http://alexgorbatchev.com/SyntaxHighlighter/のjsSyntaxHighlighter3.0.83を使用しています

私は今、全世界をグーグルで検索しているように見えますが、改行を有効にする方法を実際に見つけることができません。Instad私は水平スクロールバーを取得します。これは時々良いですが、私のシナリオではそうではありません。

例では 水平スクロールバー

これを回避する方法を知っている人はいますか?

4

2 に答える 2

9

私は実際にはSyntaxHighlightを使用していませんが、SyntaxHighlightが使用するorタグwhite-space: pre-wrapにCSSスタイルを添付することは可能のようです。<pre><script>

HTML(を使用<pre>):

<pre class="brush: js" class="syntaxhighlight">
    /**
     * SyntaxHighlighter
     */
    function foo()
    {
        if (counter <= 10)
            return;
        // it works!
    }
</pre>

HTML(を使用<script>):

<script type="syntaxhighlighter" class="syntaxhighlight brush: js"><![CDATA[
    /**
     * SyntaxHighlighter
     */
    function foo()
    {
        if (counter <= 10)
            return;
        // it works!
    }
]]></script>

CSS:

.syntaxhighlight {
    white-space: pre-wrap;
}
于 2011-06-09T00:21:02.017 に答える
9

ラップはオプションではなくなりましたが、機能を簡単に追加できます。

これをcssに追加して、行を分割します

body .syntaxhighlighter .line {
        white-space: pre-wrap !important; /* make code wrap */
}

行番号を修正するには、以下のスクリプトを使用します。

function lineWrap(){
    var wrap = function () {
        var elems = document.getElementsByClassName('syntaxhighlighter');
        for (var j = 0; j < elems.length; ++j) {
            var sh = elems[j];
            var gLines = sh.getElementsByClassName('gutter')[0].getElementsByClassName('line');
            var cLines = sh.getElementsByClassName('code')[0].getElementsByClassName('line');
            var stand = 15;
            for (var i = 0; i < gLines.length; ++i) {
                var h = $(cLines[i]).height();
                if (h != stand) {
                    console.log(i);
                    gLines[i].setAttribute('style', 'height: ' + h + 'px !important;');
                }
            }
        }
     };
    var whenReady = function () {
        if ($('.syntaxhighlighter').length === 0) {
            setTimeout(whenReady, 800);
        } else {
            wrap();
        }
    };
    whenReady();
};
lineWrap();
$(window).resize(function(){lineWrap()});
于 2013-05-05T08:35:18.697 に答える