为什么 Vue2 中的 v-html 渲染的 <p> 标签结构会发生变化?
v-html渲染<p>标签时渲染的结构与传入的结构不一致
<script>
export default {
data() {
return {
html: `<p>` +
`<a target="_blank">` +
`<div>` +
`aaaaaaa` +
`</div>` +
`</a>` +
`</p>`
}
}
}
</script>
<template>
<div v-html="html"></div>
</template>
传入的字符串结构是:-p -a
-div
-text
但是渲染出来的结构却是混乱的,经测试去掉<p>标签后就正常了。使用的是vue2,由于在做的是编辑器,所以不可避免地有<p>标签的情况,想问下这是什么原因导致的渲染异常
回复
1个回答

test
2024-08-11
这个和 vue2 无关,你可以单纯写一个 html 文件试试;
段落是块级元素,如果在关闭的 </p> 标签之前解析了另一个块级元素,则该标签将自动关闭。
标准是这样 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/p
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容