小程序rich-text組件如何改變內(nèi)部img圖片樣式的方法
一、起因
小程序中有一個頁面,很奇葩,是通過后端傳過來的整段HTML字符串展示內(nèi)容的,那么我們暫時叫這個頁面為content,傳過來之后,他里面的圖片樣式是不固定的,有的大,有的小,有的有style有的沒有,那我怎么能讓他統(tǒng)一展示成一樣的樣式呢?
二、辦法
思前想后,我覺得還是正則比較靠譜,把content里面所有的img標(biāo)簽篩選出來,把里面有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)一的效果啦~
三、總結(jié)
我有想過直接在less里面取到img,然后改變它的樣式,這種辦法在h5中是可行的,但是在小程序中不起作用!因為在小程序中會是一整個rich-text標(biāo)簽,里面的內(nèi)容樣式無法修改。所以采用這種辦法啦~~能夠解決問題。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何利用原生JS實現(xiàn)觸摸滑動監(jiān)聽事件
這篇文章主要給大家介紹了關(guān)于如何利用原生JS實現(xiàn)觸摸滑動監(jiān)聽事件的相關(guān)資料,文中將實現(xiàn)的原理以及代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-06-06
使用javascript函數(shù)編寫簡單銀行取錢存錢流程
本文通過實例代碼給大家講解了使用javascript函數(shù)編寫簡單銀行取錢存錢流程,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-05-05

