一、起因
小程序中有一個頁面,很奇葩,是通過后端傳過來的整段HTML字符串展示內(nèi)容的,那么我們暫時叫這個頁面為content,傳過來之后,他里面的圖片樣式是不固定的,有的大,有的小,有的有style有的沒有,那我怎么能讓他統(tǒng)一展示成一樣的樣式呢?
二、辦法
思前想后,我覺得還是正則比較靠譜,把content里面所有的img標簽篩選出來,把里面有style的、有width的、有height的、全部刪除掉,最后在統(tǒng)一加上我們想要的樣式,最終代碼如下:
<RichText nodes={content} /> 下面是HTML字符串處理過程
let html = content .replace(/<p([/s/w"=///.:;]+)((?:(style="[^"]+")))/ig, '<p') .replace(/<p>/ig, '<p style="font-size: 15Px; line-height: 25Px;">') .replace(/<img([/s/w"-=///.:;]+)((?:(height="[^"]+")))/ig, '<img$1') .replace(/<img([/s/w"-=///.:;]+)((?:(width="[^"]+")))/ig, '<img$1') .replace(/<img([/s/w"-=///.:;]+)((?:(style="[^"]+")))/ig, '<img$1') .replace(/<img([/s/w"-=///.:;]+)((?:(alt="[^"]+")))/ig, '<img$1') .replace(/<img([/s/w"-=///.:;]+)/ig, '<img$1 style="width: 100%; border-radius: 8Px;"');
最終實現(xiàn)了我們想要的樣式統(tǒng)一的效果啦~
三、總結
我有想過直接在less里面取到img,然后改變它的樣式,這種辦法在h5中是可行的,但是在小程序中不起作用!因為在小程序中會是一整個rich-text標簽,里面的內(nèi)容樣式無法修改。所以采用這種辦法啦~~能夠解決問題。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答