我终于完成了一个 Web 应用程序,现在我必须使其与 Internet Explorer(至少 8)兼容。现在几乎完成了,除了一个地方,IE8 显然删除了我定义的一些 CSS 格式。
我上传了一些 generating Perl Code 的截图,如何Firefox (+ Firebug)呈现它以及如何呈现 IE8 (+ "Web Developer Tools")呈现它。
IE8 似乎忽略了我创建的每个元素的宽度、高度、左侧和顶部。谷歌似乎对这种行为一无所知。谁能帮我解决这个问题?
选修课
如果您想知道它应该做什么:应用程序的这一部分在 Storyboard(有点像在线漫画创作者)上创建一个叠加层,并用用户创建的所有面板填充屏幕。它缩小/增大预览,以便在不拉伸(stretch)图像的情况下尽可能多地用完整个屏幕,并将它们排列在网格中(1x1、1x2、2x2、2x3 等)。然后可以通过单击屏幕标题来重命名屏幕,可以通过四处拖动来对它们进行排序,也可以通过单击鼠标悬停时出现在右上角的删除按钮来删除它们(就像 iPhone 上的徽章一样)。这就像一个魅力,我花了一些时间让 CSS 正常工作。
编辑 1
代码需要重构(这是我要做的最后一件事)所以代码中有一些可疑的 CSS。别介意:)
编辑2
我可能找到了一种通过 my Public Folder 与您分享我的代码的方法.只需下载 storyboard.zip 并打开 storyboard.html。
编辑3
在 doctype 的伙计们的帮助下,我能够找到并 discover错误。现在这很麻烦,因为我需要 window.innerHeight 和 window.innerWidth 的值才能调整预览,以便尽可能多地填满屏幕。你们知道替代方案吗?
最佳答案
如果没有更多的代码/演示,这真的不可能说出来 — 看起来你有相当多的 CSS,我们只能在屏幕上看到一些。然而,
IE8 just seems to ignore my width, height, left and top of every Element that is created.
通常是由于缺少宽度和高度的“px”单位引起的,但任何 CSS 解析错误都可能导致它。我们看不到生成的 HTML 源代码,但是源代码中的反斜杠是什么?它们会被您正在使用的任何语言字符串格式所取代吗?尝试将 style
属性的内容复制/粘贴到 CSS validator 中以检查是否存在明显错误。
黑色覆盖层的透明度也存在问题。根据 DOM 判断,IE 无法解析“filter”属性,您如何设置它?由于您似乎在使用 jQuery,因此您应该能够使用 element.css('opacity', .5)
从脚本中设置它。 (编辑:我猜你实际上是在这样做,从 IE 看到的 'zoom: 1' 判断。但是很明显 filter 属性被破坏了;如果它不能 parseInt
值。你将什么作为值传递给 .css()
?)
我也不确定是什么:
style="width:auto;height:auto;position:static;
是为了,无论如何这些都是默认值。此外,max-width
与 width
一样,不适用于内联元素。
额外的挑剔:$screen_name
(以及您模板化为 HTML 的任何文本字符串)需要进行 HTML 转义,否则您可能存在跨站点脚本漏洞。纯数字 id 是无效的。
关于html - IE8删除CSS属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486218/