最近在博客發(fā)布一些需要插入代碼語(yǔ)言的文章,發(fā)現(xiàn)在手機(jī)端訪問(wèn),盡然顯示不全,不能根據(jù)手機(jī)分辨率自動(dòng)適配,訪問(wèn)體驗(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èn)查看效果:
網(wǎng)上也找到了word-break 參數(shù)說(shuō)明:
語(yǔ)法:
word-break : normal | break-all | keep-all
參數(shù):
normal : 依照亞洲語(yǔ)言和非亞洲語(yǔ)言的文本規(guī)則,允許在字內(nèi)換行
break-all : 該行為與亞洲語(yǔ)言的normal相同。也允許非亞洲語(yǔ)言文本行的任意字內(nèi)斷開(kāi)。該值適合包含一些非亞洲文本的亞洲文本
keep-all : 與所有非亞洲語(yǔ)言的normal相同。對(duì)于中文,韓文,日文,不允許字?jǐn)嚅_(kāi)。適合包含少量亞洲文本的非亞洲文本
說(shuō)明:
設(shè)置或檢索對(duì)象內(nèi)文本的字內(nèi)換行行為。尤其在出現(xiàn)多種語(yǔ)言時(shí)。
對(duì)于中文,應(yīng)該使用break-all 。
本以為問(wèn)題得到了徹底解決,但在電腦端訪問(wèn)此文章http://www.zhongjima.net/atang_3727.html,發(fā)現(xiàn)依然存在不會(huì)自動(dòng)換行的情況,如下圖:
一開(kāi)始以為緩存原因,清理緩存,更換了瀏覽器測(cè)試還是存在問(wèn)題。只要通過(guò)chrome 瀏覽器F12開(kāi)發(fā)者模式,去查看css樣式情況,在一個(gè)個(gè)樣式排查下來(lái),找到了罪魁禍?zhǔn)住?/p>
white-space:nowrap到底什么作用,網(wǎng)上查了查資料:
white-space:normal; 默認(rèn)。依照亞洲語(yǔ)言和非亞洲語(yǔ)言的文本規(guī)則,允許在字內(nèi)換行
white-space:pre-wrap; 只對(duì)中文起作用,強(qiáng)制換行
white-space:nowrap; 強(qiáng)制不換行,中文因?yàn)槎计鹱饔?/p>
white-space:nowrap; overflow:hidden; text-overflow:ellipsis;不換行,超出部分隱藏且以省略號(hào)形式出現(xiàn)
于是找到此style.css文件,搜索找到white-space: nowrap; 更改為 white-space: normal;保存以后清理瀏覽器緩存,再次訪問(wèn)查看效果,發(fā)現(xiàn)已經(jīng)自動(dòng)換行。