最近在博客發(fā)布一些需要插入代碼語言的文章,發(fā)現(xiàn)在手機(jī)端訪問,盡然顯示不全,不能根據(jù)手機(jī)分辨率自動適配,訪問體驗(yàn)極差,如下圖:

由于編輯器使用的是百度編輯器ueditor,網(wǎng)上隨便一搜便找到了解決方案。
找到wp-content/plugins/ueditor/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css文件,然后找到:
.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;
border-radius: 4px!important;
border-collapse: separate!important;
}
添加一行word-break:break-all;
.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;
border-radius: 4px!important;
border-collapse: separate!important;
word-break:break-all;
}
由于此shCoreDefault.css文件刪除了空格和換行,所以可讀性非常差,可以搜索.syntaxhighlighter{ 然后添加word-break:break-all;
然后清理瀏覽器緩存,再訪問查看效果:

網(wǎng)上也找到了word-break 參數(shù)說明:
語法:
word-break : normal | break-all | keep-all
參數(shù):
normal : 依照亞洲語言和非亞洲語言的文本規(guī)則,允許在字內(nèi)換行
break-all : 該行為與亞洲語言的normal相同。也允許非亞洲語言文本行的任意字內(nèi)斷開。該值適合包含一些非亞洲文本的亞洲文本
keep-all : 與所有非亞洲語言的normal相同。對于中文,韓文,日文,不允許字?jǐn)嚅_。適合包含少量亞洲文本的非亞洲文本
說明:
設(shè)置或檢索對象內(nèi)文本的字內(nèi)換行行為。尤其在出現(xiàn)多種語言時。
對于中文,應(yīng)該使用break-all 。
本以為問題得到了徹底解決,但在電腦端訪問此文章http://www.maowutv.com/atang_3727.html,發(fā)現(xiàn)依然存在不會自動換行的情況,如下圖:

一開始以為緩存原因,清理緩存,更換了瀏覽器測試還是存在問題。只要通過chrome 瀏覽器F12開發(fā)者模式,去查看css樣式情況,在一個個樣式排查下來,找到了罪魁禍?zhǔn)住?/p>

white-space:nowrap到底什么作用,網(wǎng)上查了查資料:
white-space:normal; 默認(rèn)。依照亞洲語言和非亞洲語言的文本規(guī)則,允許在字內(nèi)換行
white-space:pre-wrap; 只對中文起作用,強(qiáng)制換行
white-space:nowrap; 強(qiáng)制不換行,中文因?yàn)槎计鹱饔?/p>
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;不換行,超出部分隱藏且以省略號形式出現(xiàn)
于是找到此style.css文件,搜索找到white-space: nowrap; 更改為 white-space: normal;保存以后清理瀏覽器緩存,再次訪問查看效果,發(fā)現(xiàn)已經(jīng)自動換行。



