为什么Firefox显示效果与Chrome相差那么多呢?

为什么Firefox显示效果与Chrome相差那么多呢?

完整代码如下所示。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" manifest="cache.manifest">

   <head>
      <title>hover伪类</title>
      <meta charset="UTF-8">
      <meta name="renderer" content="webkit">
      <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
      <base target="_blank">
        <style type="text/css">
         *
            {
                margin: 0;
                padding: 0;
            }

            li
            {list-style-type: none;}

            a
            {text-decoration: none;}

            header
            {
                position: fixed;
                top: 0;
                width: 100%;
                height: 50px;
                background-color: #222;
            }

            nav,
            nav > ul
            {
                overflow: hidden;
                width: 474px;
                height: 50px;
                max-height: 100%;
            }

            nav
            {margin: 0 auto;}

            nav > ul > li
            {
                float: left;
                padding: 0 12px;
                height: 50px;
                line-height: 50px;
            }

            nav > ul > li > a
            {
                font-size: 20px;
                color: #FFF;
            }

            nav > ul > li:nth-child(1):hover
            {background-color: #08B;}

            nav > ul > li:nth-child(2):hover
            {background-color: #F8B;}

            nav > ul > li:nth-child(3):hover
            {background-color: #0E6;}

            nav > ul > li:nth-child(4):hover
            {background-color: #888;}

            nav > ul > li:nth-child(5):hover
            {background-color: #DD2;}

            nav > ul > li:hover
            {transition: background-color .3s;}

        </style>
   </head>

   <body>
      <header>
         <nav>
            <ul>
               <li><a href="http://www.cplusplus.com/">C++</a></li>
               <li><a href="https://www.w3.org/">W3C</a></li>
               <li><a href="https://developer.mozilla.org/">MDN Document</a></li>
               <li><a href="http://www.ecma-international.org/">ECMA</a></li>
               <li><a href="http://www.w3school.com.cn/">W3school</a></li>
            </ul>
         </nav>
      </header>
   </body>

</html>

在以上代码中,我在CSS部分设置了nav及其子元素ul的宽度为474px。

在Chrome的显示效果如下。

http://img1.sycdn.imooc.com//climg/5d35cd680001301f14870873.jpg

在Firefox的显示效果如下。

http://img1.sycdn.imooc.com//climg/5d35cdc10001233015110900.jpg

可见,在Firefox中,导航列表的最后一项“W3school”没有与其它导航项位于同一行,通过开发者工具,把width由474px增加至519px,所有的导航列表项才能够显示在同一行上。

我的浏览器版本如下。

http://img1.sycdn.imooc.com//climg/5d35cec30001379306990281.jpg

http://img1.sycdn.imooc.com//climg/5d35cec40001c6ef06800374.jpg

同样的代码,在不同的浏览器中为什么相差那么多呢?足足相差了45px?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 我学习太差被关起来了 2019-07-23 18:21:47

我发现为什么出现问题了:居然是字体类型带来的。

我的Chrome和Firefox默认字体大小都是16px。浏览器默认字体类型,前者是Times New Roman,后者是微软雅黑。当我把Chrome的默认字体类型也改为微软雅黑,那么调试结果与Firefox是一模一样的,也就是nav的width必须至少为519px,5个li才能够位于同一行上。

以下两图是我的Chrome字体设置。

http://img1.sycdn.imooc.com//climg/5d36dd430001ff9e13900574.jpg

http://img1.sycdn.imooc.com//climg/5d36de280001179807210766.jpg

下图是我的Firefox字体设置。

http://img1.sycdn.imooc.com//climg/5d36de350001694d10251001.jpg

当Chrome和Firefox的默认字体都设置为16px的微软雅黑后,那么代码在两种浏览器中的显示效果就一样了,即nav的最小宽度为519px,才能使5个li都位于同一行上(header)。

没想到字体类型的不同(Times New Roman与微软雅黑),会带来如此大的显示差异(472px与519px),看来前端开发真是不容易。

  • 找到问题就好,同学很细心哦,这边测试的浏览器效果确实一样,而且如上次回答也说到了,宽度在474px的情况下谷歌和火狐浏览器中都是其他li同行显示的,W3school换行了! 继续加油哦,祝学习愉快~
    2019-07-23 19:48:42
好帮手慕码 2019-07-23 11:38:19

同学你好!
这边测试,宽度在474px的情况下谷歌和火狐浏览器中都是在同行显示的:

谷歌:

http://img1.sycdn.imooc.com//climg/5d36806300010db405510103.jpg

火狐:

http://img1.sycdn.imooc.com//climg/5d36806c0001e01f05400101.jpg

而且版本和同学的没有相差太多,不是浏览器的问题。建议同学将修改后的代码保存清除浏览器缓存刷新再试一下

如果帮助到了你 欢迎采纳 祝学习愉快~

  • 老师,在你的图中,导航列表的最后一项“W3school”不见了,应该是换行跑到下面去了。
    2019-07-23 12:48:20
  • 可能是刚才的回复没有描述清楚,抱歉给同学造成误区。宽度在474px的情况下谷歌和火狐浏览器中都是其他li同行显示的,W3school换行(因为宽度不够),而没有出现同学说的只有在谷歌浏览器所有li同行,火狐浏览器中W3school换行情况。请问同学现在还是有提问中的问题吗?
    2019-07-23 12:57:06
  • 是的,问题还是那样。【1】474px时,在Chrome中5个li都位于同一行上,在Firefox中第5个li换行了。【2】只有增大到519px或更大时,在Firefox中5个li才位于同一行上。
    2019-07-23 15:31:50
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师