一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

解决echarts在IE7 IE8下图表中文字出现闪烁问题

时间:2014-05-07 编辑:简简单单 来源:一聚教程网

这个问题我们的建议是如果是完全按照官方demo来做的,那还是肯定有一些地方不一样。

比如,如果你使用的是Visual Studio 之类的IDE的话,你新建的页面会自动添加一些结构进去的。

如:下面这是Visual Studio2013产生的标准的html代码

 代码如下 复制代码




   



言归正传。最终网友按照demo一步一步的修改,最终定位问题是:

问题出在DOCTYPE上 官网的例子都是  我的页面里写的是   这点区别影响很大  我把官网下载下来的例子里的替换后 例子也出现问题了


既然问题出在DOCTYPE。我们就来看看DOCTYPE是干什么的?

定义和用法

 代码如下 复制代码

声明必须是 HTML 文档的第一行,位于 标签之前。

声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

HTML5 不基于 SGML,所以不需要引用 DTD。

提示:请始终向 HTML 文档添加 声明,这样浏览器才能获知文档类型。
HTML 4.01 与 HTML5 之间的差异

在 HTML 4.01 中有三种 声明。在 HTML5 中只有一种:

 代码如下 复制代码

HTML4.01的三种声明:
HTML 4.01 Strict

该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

 代码如下 复制代码

HTML 4.01 Transitional

该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

 代码如下 复制代码

"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset

该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。

 代码如下 复制代码

"http://www.w3.org/TR/html4/frameset.dtd">


总结:所谓的HTML5 DOCTYPE(即),只是一种推荐的写法,并不是html5的一部分,doctype会影响浏览器的渲染模式,尤其是早期的浏览器。现代浏览器对于各种版本的html代码兼容性很好,基本已经不再根据不同的doctype类型来决定不同的渲染模式了(当然,写和不写DOCTYPE还是有区别的),而是改为用一种兼容的解析方法。是HTML5的声明,主流的游览器中只有IE8及以下版本不支持,这样IE会进入Quirks模式。但之后的声明可以强制指定IE的呈现模式。所以就会出现闪烁等问题,很多问题还不一定暴露出来。


解决办法:使用echarts的页面需要声明HTML5 DOCTYPE ,如果需要更优雅的处理,可以判断浏览器的类型和版本。

提示用户进行升级或者切换到Chrome Firefox等浏览器进行浏览。

热门栏目