如果需要修改 rich-text 的样式,可以给 HTML 里的标签加上 class ,用 class 控制,示例如下:
app.js
addClassName2HTMLTags: function (html) {
var text = html.replace(/class=".*?"/g, ''); // 删除现有 class (内容可能粘自浏览器中的网页)
text = text.replace(/<([a-z]+)(\s?)(.*?)>/gm, '<$1 class="$1"$2$3>'); // 添加与标签同名的 class
return text;
},
detail.js
const app = getApp()
Page({
data: {
article: {
body: '',
}
},
addClassName2HTML: function (html) {
return app.addClassName2HTML(html);
},
onLoad: function (options = {}) {
let self = this;
self.setData({
['article.body']: self.addClassName2HTML('<p>p</p><img /><span>span</span>'),
});
},
});
detail.wxml
<rich-text nodes="{{article.body}}"></rich-text>
detail.wxss
.img {
max-width: 80%;
border-radius: 8rpx;
height: auto !important;
}
.p {
text-indent: 2em;
margin: 1em 0;
text-align: justify;
}
.span {
display: inline-block;
}