为什么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的显示效果如下。

在Firefox的显示效果如下。

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


同样的代码,在不同的浏览器中为什么相差那么多呢?足足相差了45px?
5
收起
正在回答 回答被采纳积分+1
2回答
我学习太差被关起来了
2019-07-23 18:21:47
我发现为什么出现问题了:居然是字体类型带来的。
我的Chrome和Firefox默认字体大小都是16px。浏览器默认字体类型,前者是Times New Roman,后者是微软雅黑。当我把Chrome的默认字体类型也改为微软雅黑,那么调试结果与Firefox是一模一样的,也就是nav的width必须至少为519px,5个li才能够位于同一行上。
以下两图是我的Chrome字体设置。


下图是我的Firefox字体设置。

当Chrome和Firefox的默认字体都设置为16px的微软雅黑后,那么代码在两种浏览器中的显示效果就一样了,即nav的最小宽度为519px,才能使5个li都位于同一行上(header)。
没想到字体类型的不同(Times New Roman与微软雅黑),会带来如此大的显示差异(472px与519px),看来前端开发真是不容易。


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星