POST TIME:2017-11-13 00:01
在安裝調(diào)試跟版網(wǎng)手機(jī)版網(wǎng)站的時(shí)候,發(fā)現(xiàn)一個(gè)問題,圖片無法很好的適應(yīng)屏幕,寬度可以與屏幕同寬,而高度卻沒有按比例調(diào)整,導(dǎo)致圖片看起來像被擠扁了一樣,為什么會(huì)這樣呢?
一般為了要達(dá)到圖片自適應(yīng)屏幕寬度的目的,我們?cè)趇mg標(biāo)簽的樣式中定義max-width:100%;height:auto;就可以了,可是這次設(shè)置了也沒有效果。
沒辦法,由于用手機(jī)無法查看源代碼,所以就在電腦上打開網(wǎng)站,然后查看源代碼,發(fā)現(xiàn)文章中的圖片還是保留了PC網(wǎng)頁img標(biāo)簽原有的格式設(shè)定沒有過濾掉,從而導(dǎo)致css文件中設(shè)置的img樣式無效。如下圖:
手機(jī)網(wǎng)站一般都會(huì)把文章的HTML進(jìn)行修改,去掉一些復(fù)雜的樣式,完成這些操作的代碼是在wap.inc.php文件。
打開wap.inc.php看了一下,發(fā)現(xiàn)了問題。由于要過濾掉復(fù)雜的html標(biāo)示,但是還需要保留圖片,所以在過濾的時(shí)候,先把整個(gè)img標(biāo)簽給替代掉了,等過濾完之后,又替代回來,這樣就導(dǎo)致了img標(biāo)簽里面的style 無法被過濾。
原因找到了,辦法也很簡(jiǎn)單,我們只需在最后輸出的時(shí)候過濾掉style=“”里面的信息,就可以讓我們的自適應(yīng)樣式設(shè)定生效了。在/include/wap.inc.php中添加這句代碼(紅字部分):
$content = preg_replace("/style=.+?[*|\&;]/i", "", $content);
$content = preg_replace("/&[a-z]{3,10};/isU", ' ', $content);
return $content;
修改完之后保存,再開啟頁面的時(shí)候,查看源代碼,style標(biāo)簽的內(nèi)容已經(jīng)被過濾掉了,圖片已經(jīng)按比例縮小,不會(huì)出現(xiàn)比例失調(diào)的狀況了。