You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Prettier使块内HTML元素格式化保持一致?

解决Prettier格式化React元素格式不一致的问题

我使用NextJS默认ESLint规则,同时在VSCode中启用了Prettier。开发模板时,需要让父div内的所有子HTML元素格式保持一致——因为频繁使用多选操作,格式统一才能提升效率。

格式化前代码

<div className="grid grid-cols-2 gap-x-12 gap-y-4 mt-12">
  <div className="border-b border-[#87469E] pb-8">Staked Supply</div>
  <div className="border-b border-[#87469E] pb-8">Deployer Address</div>
  <div className="border-b border-[#87469E] pb-8">Circulating Supply</div>
  <div className="border-b border-[#87469E] pb-8">Treasury Contract</div>
  <div className="border-b border-[#87469E] pb-8">wTIA Liquidity</div>
  <div className="border-b border-[#87469E] pb-8">Burnt Address</div>
  <div className="border-b border-[#87469E] pb-8">wTIA Price</div>
  <div className="border-b border-[#87469E] pb-8">Vesting Contract</div>
</div>

格式化后出现的问题

<div className="grid grid-cols-2 gap-x-12 gap-y-4 mt-12">
  <div className="border-b border-[#87469E] pb-8">Staked Supply</div>
  <div className="border-b border-[#87469E] pb-8">
    Deployer Address
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Circulating Supply
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Treasury Contract
  </div>
  <div className="border-b border-[#87469E] pb-8">wTIA Liquidity</div>
  <div className="border-b border-[#87469E] pb-8">Burnt Address</div>
  <div className="border-b border-[#87469E] pb-8">wTIA Price</div>
  <div className="border-b border-[#87469E] pb-8">
    Vesting Contract
  </div>
</div>

这种格式混乱导致无法用快捷键批量选择文本,以下是两种统一格式的解决方法:


方法1:强制所有元素保持单行

修改项目根目录的.prettierrc或.prettierrc.json配置文件,增大printWidth的值(比如设为180),让所有子元素的内容加标签长度都能容纳在单行内:

{
  "printWidth": 180,
  "semi": true,
  "singleQuote": true,
  "trailingComma": "es5"
  // 保留你原有其他Prettier配置
}

调整后Prettier会允许更长的单行内容,所有子div都会保持统一的单行格式。


方法2:强制所有元素内容换行

如果希望所有子元素的文本内容都单独换行显示,可以通过<!-- prettier-ignore -->指令禁用父div的自动格式化,然后手动调整格式:

<!-- prettier-ignore -->
<div className="grid grid-cols-2 gap-x-12 gap-y-4 mt-12">
  <div className="border-b border-[#87469E] pb-8">
    Staked Supply
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Deployer Address
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Circulating Supply
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Treasury Contract
  </div>
  <div className="border-b border-[#87469E] pb-8">
    wTIA Liquidity
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Burnt Address
  </div>
  <div className="border-b border-[#87469E] pb-8">
    wTIA Price
  </div>
  <div className="border-b border-[#87469E] pb-8">
    Vesting Contract
  </div>
</div>

添加该指令后,Prettier不会修改这个父div内部的格式,确保所有子元素保持统一的换行样式。


内容的提问来源于stack exchange,提问作者mchl18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:32:33