【发布时间】:2011-08-01 19:19:57
【问题描述】:
我已在一周前将此提交给Webkit bugzilla (including full CSS and HTML),但到目前为止尚未收到回复。同时,我想知道是我还是 Webkit 在做一些奇怪的事情。 我已经找到了解决方法,只是在寻找究竟是什么导致这种差异的答案。
这是我正在经历的:
(来源:mindcontrolled.nl)
在 Chrome 10.0.648.204、Safari 5.0.3 (7533.19.4)、Firefox 4.0 和 IE 8 版本中测试。
这是相关代码。我已经在 HTML 中隔离了这段代码,看看是不是周围的对象造成了问题,但问题仍然存在。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
[...]
<div id="top">
<div id="logo">
<a href=""><strong><span style="color: #005288;">pre</span><span style="color: #00aeef;">view</span></strong> <span style="color: #fcaf17;">website</span></a>
</div>
<div id="topmenu">
<ul>
<li><a href=""><span>over</span> ons</a></li>
<li><a href=""><span>onze</span> partners</a></li>
<li><a href="">contact</a></li>
<li><a href="">helpdesk</a></li>
</ul>
</div>
<div style="clear: both;"></div>
</div>
还有 CSS:
#container, #top, #contentcontainer {
padding: 12px;
}
#logo {
float: left;
margin: 0;
font-size: 2em;
letter-spacing: -2px;
}
#topmenu ul, #mainsubmenu ul {
margin: 0;
padding: 0;
list-style-type: none;
}
#topmenu li, #mainsubmenu li {
display: inline;
}
#topmenu li {
margin-left: 20px;
}
#topmenu li:first-child {
margin-left: 0;
}
#topmenu a {
color: #005288;
}
#topmenu a:hover {
color: #00aeef;
}
#topmenu a span {
color: #005288;
}
我首先测量了所有 div,看看它们在 Gecko 和 Webkit 中是否具有相同的自动计算尺寸,并且它们的宽度测量值都完全相同(当然 Webkit 上的高度不同)。它在 Chrome 的 Firebug lite 和 Firefox (4) DOM-inspector 中为 390 像素。
即使这 390 像素不足以容纳整个列表,div 也可以简单地向左扩展。当字体呈现稍有不同或
还有点奇怪的是,如果我删除了
#topmenu li:first-child {
margin-left: 0;
}
来自 CSS,它不会对列表中第一个元素的位置做任何事情。相反,它改变了 LI 在 second 线上的位置!然后,“Helpdesk”会奇怪地与“Over ons”对齐。
我的解决方法: 如果我为至少 390(当前宽度)加上 20 像素(我使用第一个子元素删除的边距)的顶部菜单 DIV 定义了一个固定宽度,最小总固定宽度为 410 像素,则所有元素都保持在同一行。
很想听听大家对此的看法。
【问题讨论】:
标签: html css google-chrome webkit gecko