Firefox 3.6.12 vs CSS box

自从我更新FF到3.6.12(或者至少是当我注意到这个问题时),我正在处理一个不寻常的情况。 虽然Chrome和Opera使用content-box盒模型,但Firefox似乎已经开始使用border-box 。 现在我正在设计一些表格标题,其高度为39px,底部为1px边框(总高度:40px)。

它在任何地方显示OK,除FF以外,内容框为38px高。

如果它有任何用处,我在Windows 7 Professional 32位上,但也在我的同事的计算机上注意到这一点(Windows XP Professional)。

我的CSS(简化为可读性)只是这个,没什么奇怪的:

table { border-spacing: 3px; }
table tr th { height: 39px; border-bottom: 1px solid red; }

将box-model明确地设置为content-box不起作用,就好像border-box在内部设置为!important ...(有点像Chrome自动填充表单字段背景的做法)

这1个像素的差异不会让我的风格分开(我没有让它像素完美),但我仍然对我的FF改变其行为感到非常不安。 所以,我的问题是:

  • 你的情况也会发生吗? (如果没有,这可能是我的CSS中的一些错误)
  • 如果是这样,FF团队是否决定违背W3C并更改默认的盒子模型?
  • 如果是这样,你碰巧知道为什么和在哪里我可以找到关于它的一些信息(谷歌拒绝帮助)?

  • OK,用户代理样式表阿尔卡纳以您的方式出现:

    出于某种原因,FF在其默认样式表中设置了table { -moz-box-sizing: border-box } 。 IE8(但不是7)。 其他浏览器使用默认的box-sizing: box-content 。 我不知道为什么FF做到这一点,违背了W3C的默认价值。 这里有一个很长的讨论:为什么在Firefox中将表格框设置为边框?

    要覆盖它,请使用-moz前缀:ie table { -moz-box-sizing: content-box }


    也许反过来解决这个问题将是一个很好的解决方案:只要在任何情况下尝试border-box

    table tr th
    {
        height: 40px;
        border-bottom: 1px solid red;
        -moz-box-sizing: border-box;
        -ms-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
    }
    

    好,所以我对此做了一些测试,在Chrome 8,Opera 11和Firefox 4中,TR的高度都一样。

    Firefox 4pre8

    Chrome 8

    歌剧11

    替代文字

    在Opera和Firefox中,TH的高度为38px,而不是39px,似乎WebKit在这里有一个错误,它报告TH上的高度不正确,同时仍然应用与其他两个浏览器相同的规则。

    快速叠加3种不同的效果图证明,除了文本渲染和宽度外,没有任何区别:

    你真的做过图形测试吗? 只是盲目信任这些工具可能会产生误导。

    链接地址: http://www.djcxy.com/p/75577.html

    上一篇: Firefox 3.6.12 vs CSS box

    下一篇: Set size on background image with CSS?