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

Tailwind布局在Chrome与Firefox中显示不一致的原因咨询

问题:Tailwind布局在Firefox与Chrome显示不一致的原因及修复

原始代码

<template>
  <div class="flex justify-center items-center h-screen">
    <div class="grid grid-cols-2 w-64 space-x-1 bg-black p-2 rounded-xl">
      <div class="relative z-0 bg-black">
        <div class="relative z-20 grid-rows-3">
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="relative z-10 bg-black h-1"></div>
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="absolute z-20 bottom-1/2 translate-y-1/2 right-1/2 translate-x-1/2 text-[200px]">3</div>
        </div>
      </div>
      <div class="relative z-0 bg-black">
        <div class="relative z-20 grid-rows-3">
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="relative z-10 bg-black h-1"></div>
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="absolute z-20 bottom-1/2 translate-y-1/2 right-1/2 translate-x-1/2 text-[200px]">6</div>
        </div>
      </div>
    </div>
  </div>
</template>

显示差异说明

Chrome中能正确渲染出上下两个白色圆角块、中间带黑色间隔的布局,数字居中;但Firefox里上下白色块重叠,中间的黑色间隔消失,数字位置也错位。

原因分析

问题出在grid-rows-3类的使用上:

  • Tailwind的grid-rows-3对应CSS为grid-template-rows: repeat(3, minmax(0, 1fr)),这个属性只有当元素被设置为网格容器(即display: grid)时才会生效。
  • Chrome有兼容性兜底,会自动给应用了grid-template-rows的元素加上display: grid,所以能正确解析3行网格布局。
  • Firefox严格遵循CSS规范,没有display: grid的情况下,grid-template-rows会被忽略,内部元素都是普通块级元素,中间的h-1黑色div会被上下两个h-20的白色块挤压,视觉上消失;同时绝对定位的数字因为父元素高度未按网格计算,导致居中位置错误。

修复方案

给包含grid-rows-3的div加上grid类(开启网格布局),修改后的关键代码如下:

<!-- 给每个含grid-rows-3的div添加grid类 -->
<div class="relative z-20 grid grid-rows-3">

修复后的完整代码:

<template>
  <div class="flex justify-center items-center h-screen">
    <div class="grid grid-cols-2 w-64 space-x-1 bg-black p-2 rounded-xl">
      <div class="relative z-0 bg-black">
        <div class="relative z-20 grid grid-rows-3">
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="relative z-10 bg-black h-1"></div>
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="absolute z-20 bottom-1/2 translate-y-1/2 right-1/2 translate-x-1/2 text-[200px]">3</div>
        </div>
      </div>
      <div class="relative z-0 bg-black">
        <div class="relative z-20 grid grid-rows-3">
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="relative z-10 bg-black h-1"></div>
          <div class="relative z-10 bg-white h-20 rounded-xl"></div>
          <div class="absolute z-20 bottom-1/2 translate-y-1/2 right-1/2 translate-x-1/2 text-[200px]">6</div>
        </div>
      </div>
    </div>
  </div>
</template>

修改后,Chrome和Firefox就能保持一致的显示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:30:29