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>标签的情况,想问下这是什么原因导致的渲染异常
这个和 vue2 无关,你可以单纯写一个 html 文件试试;
段落是块级元素,如果在关闭的 </p> 标签之前解析了另一个块级元素,则该标签将自动关闭。
标准是这样 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/p