SyntaxHighlighter行号显示错误问题解决方案

SyntaxHighlighter是根据代码中的换行符分配行号的。但是,如果一行代码或者注释比较长,在页面显示时需要分成多行显示,会出现行号对不上的问题,像这样:

通过设置CSS强制不换行,可以保证行号显示正常,但会出现滚动条,像这样:

使用开发者工具查看SyntaxHighlighter所渲染的元素可以看到,每个行号和每行代码都是一个div,而由于是行号和代码是分别放在两个td中进行的高度计算,导致了在其中一部分出现高度变化时,两部分的高度不同。

这时候考虑在元素渲染完成后,动态改变行号的默认高度

var guttelines=$('.gutter .line’);
var codelines=$('.code .line’);
for(i=0;i<$(guttelines).length;i++){
    $(guttelines).eq(i).css('height',$(codelines).eq(i).css('height'))
}

查看元素及渲染效果,元素虽然被设置了高度,但并未按所设置的高度进行显示,行号显示依然有问题,会这样:

 

使用开发者工具查看行号元素,可以看到,其高度并未生效

 

查看style渲染过程,可以看到,高度是被SyntaxHighlighter默认css中通过important覆盖了

 

删除这个important高度设置,重新刷新页面,问题解决。

 

注:SyntaxHighlighter 3.0.83 使用的是 XRegExp 1.5.0 ,在修改时需要引用该js

完整代码请参考: https://github.com/buaawp/syntaxhighlighter/

 

最终效果请参考:http://leettest.com

 

转载于:https://www.cnblogs.com/buaawp/p/5345496.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值