关于html标签换行格式问题

59#mjidxiekjuudk3bibr8

还原问题

在配置 eslint 和 prettier 规范项目时,总是会遇到下面的情况:

源代码:

html 复制代码
<span class="aaa"><span>123</span></span>

假如这块代码触发了 prettier 的换行规则,理想的排版应该是:

html 复制代码
<span class="aaa">
  <span>123</span>
</span>

但是实际上是

html 复制代码
<span class="aaa"
  ><span>123</span></span
>

规则分析

为什么会存在把 > 格式化到下一行的情况,这里涉及到一个“行内\块级元素”的规则。

由于 span 便签是行内标签,起初我们只添加的文本 ”123“ ,为了保持它行内的属性,prettier在执行格式化时,不会主动添加换行符,因为换行符在渲染 html 时会被渲染出来,实际上我们没有主动添加,为了严格保持内容一致,所以采用了隔断标签换行的策略。

我们给 class="aaa"> 后面手动回车一下,就能发现,prettier在执行换行格式化时,能达到我们的预期,这是因为我们告诉了它,这里可以换行,我的内容包含换行符,不是纯粹的行内文字。

在框架组件中,也会存在这个问题,因为 prettier 并不知道组件是什么类型的节点,所以默认安装行内的规则执行了格式化。

参与本文讨论

请先登录 GitHub 后留言

0/500

本文留言

0

这篇文章还没有留言,来写第一条吧。

1 / 1