我已经研究了很多关于为什么我的JSTree在IE8中非常糟糕地渲染,同时在Chrome中完美运行。至少有一个问题是IE8缺乏对css-property background-size
的支持。我使用自定义图标来表示文件夹和文件。树形结构中的每一行在IE8中的高度为24px,当它是40的铬时。后一种浏览器使用background-size: auto;
自动环绕图标大小来计算线高。 IE8没有。
我尝试使用许多不同的解决方案来弥补IE8缺乏的功能,例如:
How do I make background-size work in IE?
和链接到https://github.com/louisremi/background-size-polyfill
然而,由于jstree的复杂性,以及它的默认css文件,我很难在现有代码中实现任何这些解决方案,因为我缺乏完全理解结构的经验。 default.css。
使这项工作成为正确的行动方案是什么?我也搜索过IE8兼容的.css文件,但一无所获。
这个答案证实了我不得不从头开始创建自己的.css并完全理解它,这也是非常受欢迎的。但是,在我花时间去做之前,我会喜欢第二种意见。
修改 这些是我目前情况的截图:
Chrome有很好的间距,可见的V形/箭头/扩展图标。此外,字体有效。
IE8没有自动尺寸,这使得高度为24px而不是40px。我试过手动将它们设置为40,但没有运气。视觉技巧的缺乏并没有给我带来太多麻烦,但缺少箭头扩展图标对于我的应用程序的可用性至关重要。
当前主题的工作编辑将被接受作为答案。因此将链接到符合IE8的替代主题。或者任何有助于我了解如何解决问题的方法。
答案 0 :(得分:3)
最好的方法是为IE8创建单独的样式表
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="ie8.css">
<![endif]-->
还有许多其他内容,例如您需要添加元标记
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
还有一件事请将您的一些代码发布在小提琴中,以便我们更好地追踪问题的实际原因。
更新:
添加此修复后也会检查..
<!--[if lt IE 8]>
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
<![endif]-->
我希望这会增加一些积极的东西。
更新:
检查jsTree Demo后,我可以再次提出jQuery版本的问题。
如果您使用的是jQuery v1.10.1或更高版本。 jQuery没有像IE8这样的老浏览器的支持,因为必须使用v.1.9.1,这是支持IE8的最后一个版本。
答案 1 :(得分:0)
尝试使用你的ie8浏览器兼容css3伪元素和其他东西的respond.js。