我终于完成了一个Web应用程序,现在我必须使它与Internet Explorer兼容(至少8个)。它现在几乎完成了,除了一个地方,IE8显然删除了我定义的一些CSS格式。
我上传了generating Perl Code的一些屏幕截图,Firefox (+ Firebug)如何呈现它以及IE8 (+ "Web Developer Tools")如何呈现它。
IE8似乎忽略了我创建的每个Element的宽度,高度,左边和顶部。谷歌似乎对这种行为一无所知。任何人都可以帮我这个吗?
如果你想知道它应该做什么:应用程序的这一部分在Storyboard(这是一种在线漫画创建者)上创建一个叠加,并用用户创建的所有面板填满屏幕。它会缩小/增大预览,以便在不拉伸图像的情况下尽可能多地使用整个屏幕,并将它们排列在网格中(1x1,1x2,2x2,2x3等等)。然后可以通过单击屏幕标题重命名屏幕,可以通过拖动它们对它们进行排序,可以通过单击悬停时右上角显示的删除按钮来删除屏幕(就像iPhone上的徽章一样)。这就像一个魅力,我花了一些时间让CSS像它应该的那样工作。
代码需要重新考虑(这是我将要做的最后一件事)所以代码中有一些可疑的CSS。不要介意:)
我可能已经找到了一种通过my Public Folder与您分享我的代码的方法。只需下载storyboard.zip并打开storyboard.html。
在doctype的帮助下,伙计们得到了一些帮助,我能够追踪到discover这个Bug。现在这很麻烦,因为我需要window.innerHeight和window.innerWidth中的值来调整预览,以便尽可能地填满屏幕。你们是否知道其他选择?
答案 0 :(得分:0)
没有更多的代码/演示就不可能告诉它 - 看起来你有很多CSS,我们只能看到屏幕上的一些内容。然而,
IE8似乎忽略了我创建的每个元素的宽度,高度,左边和顶部。
通常是由于错过了'px'单元的宽度和高度,但任何CSS解析错误都可能导致它。我们无法看到生成的HTML源代码,但源代码中的反斜杠是什么?它们是否被您正在使用的任何语言字符串格式化替换?尝试将style
属性的内容复制/粘贴到CSS validator中,以检查是否存在明显错误。
黑色叠加层的透明度也存在问题。从DOM判断,IE无法解析'过滤'属性,你是如何设置的?由于您似乎正在使用jQuery,因此您应该能够使用element.css('opacity', .5)
从脚本中进行设置。 (编辑:我猜你实际上是这样做的,通过'缩放:1'来看IE。但是很明显,过滤属性已经破了; jQuery如果不能parseInt
那么就会这样做你把什么作为值传递给.css()
?)
我也不确定:
style="width:auto;height:auto;position:static;
适用于,无论如何都是默认值。同样max-width
,如width
,也不适用于内联元素。
Bonus nitpicks:$screen_name
(以及您模板到HTML中的任何文本字符串)需要进行HTML转义,否则您可能会遇到跨站点脚本漏洞。纯粹的数字ID是无效的。
答案 1 :(得分:0)
该问题在doctype得到了解答 问题是IE与世界其他地方不相容。
我使用window.innerHeight和window.innerWidth来确定我的预览有多大。不幸的是,IE不支持这个功能,所以它返回一个NaN而不是一个数字,而后者又由Perl处理为NaN。 IE最终收到的CSS类似于
width: NaNpx;
我通过document.body.offsetWidth更改了window.innerWidth(与Height相同),现在它可以工作了,虽然不是很漂亮。