3

我已经研究了很多关于为什么我的 JSTree 在 IE8 中渲染非常糟糕,而在 Chrome 中完美运行的原因。至少其中一个问题是 IE8 缺乏对 css-property 的支持background-size。我正在使用自定义图标来表示文件夹和文件。树结构中的每一行在 IE8 中的高度为 24px,而在 chrome 中为 40。后一种浏览器通过自动环绕图标大小来计算行高,使用background-size: auto;. IE8 没有。

我尝试实现许多不同的解决方案来弥补 IE8 缺乏的功能,例如:

如何使背景大小在 IE 中工作?

IE 8:背景大小修复

和链接到https://github.com/louisremi/background-size-polyfill

但是,由于 jstree 的复杂性,而且它是默认的 css 文件,我很难将这些解决方案中的任何一个实施到现有代码中,因为我缺乏完全理解 default.css 结构的经验.

完成这项工作的正确做法是什么?我还为 IE8 搜索了兼容的 .css 文件,但一无所获。

一个能证实我担心必须从头开始创建自己的 .css 并完全理解它的答案也将非常受欢迎。但是,在我投入时间去做之前,我希望有第二个意见。

编辑: 这些是我目前情况的截图:

Chrome 有很好的间距和可见的人字形/箭头/扩展图标。此外,字体工作。

铬合金

IE8 没有自动调整大小,这使得高度为 24 像素而不是 40 像素。我试过手动将它们设置为 40,但没有运气。缺乏视觉技巧并没有给我带来太多困扰,但是缺少箭头扩展图标对我的应用程序的可用性至关重要。

IE8

当前主题的工作编辑将被接受为答案。因此将链接到与 IE8 兼容的替代主题。或者任何可以帮助我理解如何自己解决问题的东西。

4

2 回答 2

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 的最后一个版本。

于 2014-07-17T12:18:10.397 回答
0

试试 respond.js,它让你的 ie8 浏览器兼容 css3 伪元素和其他东西。

https://github.com/scottjehl/Respond/tree/master/src

于 2014-07-19T09:46:20.313 回答