“最难不过坚持”
本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作
有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339
- https://jueru.net/
-
- :weixiao:
-
- :shuijiao: :weiqu: :zhenbang: :leng:
-
- :yiwen: :yiwen: :yiwen: :yiwen:
-
- 这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
-
网站采用SyntaxHighlighter插件进行代码高亮显示,有一个问题就是,如果一行代码太长,不自动换行,下面出现滚动条,不方便查看。
有什么办法呢?在经过在pre标签里面加入css样式word-wrap: break-word;word-break:break-all;不管用后,放弃了。
偶然发现,使用SyntaxHighlighter插件高亮显示的代码,并不是后台编辑时候的代码,是经过转义/替换后的代码,如图
上图是<pre class="brush: vb;"></pre>转义后的完整代码。
所以通过在pre标签里加样式改变前台页面显示,是徒劳的。
打开样式表shCoreDefault.css72行,把white-space: pre !important;改为white-space: pre-wrap !important;
20200716 发现一个问题,只用white-space: pre-wrap !important;是不行的,当英文单词太长的时候,还是会超出,再加一个word-break:break-all;就可以了
关于white-space的意思,可查看http://www.w3school.com.cn/cssref/pr_text_white-space.asp,pre-wrap的意思是保留空白符序列,但是正常地进行换行。
然后,高亮代码就可以自动换行了。
但是,自动换行后,就跟左侧的行号对应不上了,这时候就要在网页底部加一段js代码,把行用each遍历一下,计算出右侧的行高,然后把得到的值赋给左侧的行号列。
js代码如下:
<script> $(window).load(function(){ $('.code .line').each(function(index){ var yqhg=$(this).height(); $('.gutter .line:eq('+index+')').attr('style','height:'+yqhg+'px !important') }); }); </script>一定要放在网页的最底部。
修改后的额效果如图
20200623
原来用的jquery版本是jQuery v1.11.1.js
后来换成jquery-3.4.1.min.js
然后提示错误;TypeError: e.indexOf is not a function
原因是因为
$(window).load(function(){})在高版本中已经废弃,请用:$(window).on('load',function(){});替代
另外,好像bootstrap.min.js和syntaxhighlighter_3.0.83/scripts/shCore.js等一系列js有冲突,
bootstrap.min.js放在jquery-3.4.1.min.js和syntaxhighlighter_3.0.83/scripts/shCore.js……之间,左侧行号就与右侧不对齐了,原因是$('.code .line').each(function(index){……没有执行,把bootstrap.min.js放在最后就可以。