为什么 Vue2 中的 v-html 渲染的 <p> 标签结构会发生变化?

作者站长头像
站长
· 阅读数 12

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>

为什么 Vue2 中的 v-html 渲染的 <p> 标签结构会发生变化?

传入的字符串结构是:-p -a

-div
  -text

但是渲染出来的结构却是混乱的,经测试去掉<p>标签后就正常了。使用的是vue2,由于在做的是编辑器,所以不可避免地有<p>标签的情况,想问下这是什么原因导致的渲染异常

回复
1个回答
avatar
test
2024-08-11

这个和 vue2 无关,你可以单纯写一个 html 文件试试;

段落是块级元素,如果在关闭的 </p> 标签之前解析了另一个块级元素,则该标签将自动关闭。

标准是这样 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/p

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