我在一些HTML中有一个奇怪的小错误,只出现在Firefox 17中(OSX 10.8.2,尚未测试其他操作系统)。我有一个侧边栏'包含一些文本的css类,它是多个页面上的重复元素。在一个页面上(仅),此文本呈现为好像它的css visiblility属性设置为“隐藏”' (它不显示,但在自身周围留下正确的空间)。
左 Firefox 16.0.2; 正确 Firefox 17.0.1
这是css类:
.sidebar {
position:fixed;
top: 2px;
left:4px;
display:table-cell;
vertical-align:bottom;
z-index: 2;
width: 700px;
height: 64px;
-webkit-transform: rotate(90deg) translateX(320px) translateY(340px) scale(1);
-moz-transform: rotate(90deg) translateX(320px) translateY(340px) scale(1);
-o-transform: rotate(90deg) translateX(320px) translateY(340px) scale(1);
-ms-transform: rotate(90deg) translateX(320px) translateY(340px) scale(1);
transform: rotate(90deg) translateX(320px) translateY(340px) scale(1);
}
受影响的HTML:
<div class="sidebar" >
<span class="TMUP1">
<a href="/">Section_Header</a>
</span>
<span class="sidebarcontents" style="vertical-align: 50%">
Subsection_Header
</span>
</div>
网站上的所有网页都包含相同的Google Analytics异步跟踪javascript。如果我删除此代码,该错误消失。我检查了代码,这是正确的。它在网站的每个页面上使用,所有其他页面使用SAME html(它是一个重复的标题)呈现正常
google js代码:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-000000-0']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
在以下任何条件下,该错误都会消失
- 在firefox 16(相同的用户设置和插件)或任何其他浏览器中查看
- 在firefox 17 /安全模式下查看
- 删除谷歌分析代码
- 从&#39;侧边栏&#39;替换以下行? class css
-moz-transform: rotate(90deg) translateX(320px) translateY(340px) scale(1);
与
-moz-transform: translateX(320px) translateY(340px) scale(1);
(即移除旋转)
它与插件和插件无关,就像我手动禁用所有这些bug一样,这个bug仍然很明显。
具有相同HTML,相同css和相同Google分析代码的其他网页呈现正常。
问题页面是网站上最大的(~10KB优化/ gzipped html,大约160个小图片/ 880KB加载),所有其他页面都较小。
身体几乎完全由160个重复的元素组成
<div class= "outerDiv" style="background-color:transparent">
<div class="innerDiv">
<a href='/artists/artist_name/'>
<img src="/artists/artist_name/_portrait/artist_portrait.jpg" alt="" width="150" />
</a>
<div class="short_caption">
<a href='/artists/artist_name/' style="color:white">artist_name</a>
<br />artist_location
</div></div></div>
如果我大幅减少这些元素的数量,这也可以修复错误。
如何进一步隔离/修复错误?目前,似乎我不得不牺牲分析或重新设计网站,这两者似乎都有点过分。
更新
我已经做了很多调查,并把它归结为此。
<script></script>
都会调用该错误。 以下是一些显示问题的示例页面(我在原始问题中避免使用它们,因为我猜这里的链接有点不受欢迎)。需要在每个页面视图之间清空浏览器缓存以准确评估错误效果
<script></script>
标记这些样本都来自测试页面:
<script></script>
tag removed bug缺席<script></script>
标记。如果将@font_face规则移动到内部样式表,则在没有<script></script>
标记的情况下,该错误也很明显。我似乎无法在不改变网页设计的情况下消除错误,我必须重新设计网站,这对于一个版本的浏览器来说似乎有点OTT。我希望有一个更实际的解决方法。我尝试使用jQuery浏览器嗅探,但因为javascript似乎引入了一个非首发的错误。
更新2
现在我有机会在另一台机器上进行测试,并发现该bug很少见。在原始计算机上作为新用户进行测试根本不会显示错误。因此,这显然与用户设置有关,并且 - 希望如此 - 非常罕见。
更新3
根据@Boris的建议,我尝试了增量轮换以查看页面分解的位置和方式。从旋转(0度)直到约80度是很好的,之后它开始分崩离析。我已经为所有元素添加了1px边框,以帮助隔离问题...
-moz-transform
所以只值得在Firefox中查看。 更新4
回答@arttronics的一些建议 - 这是一个3d firefox view,显示它应该如何叠加(当我切换到3d视图时,错误消失了,好像Firefox正在尝试更难以做到这一点事情)。
更新5 - 重置Firefox
执行Firefox重置后(根据@ arttronics&#39;回答),错误仍然在这里,尽管可能不那么有弹性。
在重置之前,这将调用bug
- 清除缓存
- 刷新页面
重置后,清除缓存并刷新大约50%的时间会带来错误。如果我清除缓存,重新启动firefox,返回页面 - 每次都在那里。
好的,我要回答我自己的问题......我还没有找到解决方案,但是由于堆栈溢出社区的兴趣和惊人的努力,我觉得很明显...
因此,为了继续处理其他问题,我建议我们暂时搁置这个问题!感谢所有提出意见和建议的人,这是一个非常有教育意义的过程。
答案 0 :(得分:3)
重置Firefox
根据您的详细问题和结果评论,此特定错误仅对您而言是唯一的,并且在某些情况下(新的用户配置文件在新的Firefox用户配置文件出现问题时没有问题)。
现在是重置 Firefox的时候了。只需follow these simple steps,你的v17.0.1应该恢复正常。如果您的Firefox安装有多个配置文件,请改为follow these other steps。
注意:使用重置功能时,将保存您的书签,浏览历史记录,密码,Cookie和网络表单自动填充信息。但是,您的扩展程序和主题将被删除;打开的标签页,窗口和标签组不会被保存;并且您的偏好设置将被重置。
编辑:根据我前几天写的评论:
到目前为止,我没有看到有人回复说他们也看到了这个标志 下沉问题,但至少Firefox 18 ETA是在3周内 评价。
话虽如此,解决方案可能只是等到 Firefox 18 发布。