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

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

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

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

 代码如下 复制代码
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
</body>
</html>

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

问题出在DOCTYPE上 官网的例子都是<!DOCTYPE html>  我的页面里写的是<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   这点区别影响很大  我把官网下载下来的例子里的<!DOCTYPE html>替换后 例子也出现问题了

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

定义和用法

 代码如下 复制代码

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

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

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

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

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

在 HTML 4.01 中有三种 <!DOCTYPE> 声明。在 HTML5 中只有一种:

 代码如下 复制代码

<!DOCTYPE html>

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

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

 代码如下 复制代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional

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

 代码如下 复制代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset

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

 代码如下 复制代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

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

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

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

时间: 2024-08-02 00:23:33

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

IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题_jquery

本文主要通过代码示例给大家介绍IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题:分步介绍,先给大家介绍IE7浏览器窗口大小改变事件执行多次bug,具体问题分析及解决方案请看下文. var resizeTimer = null; $(window).resize(function() { if (resizeTimer) clearTimeout(resizeTimer); resizeTimer = setTimeout("alert('mm')",

完美解决jsp页面在IE8下文本模式自动为(杂项Quirks)导致页面显示错位_JSP编程

最近在修改网站的响应式的页面时,由于都是套样式页面,修改过程都是粘贴复制,导致了一些细节问题在IE8下暴露出来: 遇到的问题就是在在Chrome,火狐页面都正常,唯独在IE8下页面样式显示乱样了,但是本地就显示正常,Tomcat缓存也清楚了,再加上自己也是个小白,周末平静了一天半终于找到问题的源头了,其实解决办法也很简单,如图: 我最初是将小脚本写在<!DOCTYPE html>文档都上方的,但是在IE8浏览文本模式默认就编程了"Quirks"模式,显示不正常,后来改成了写

jquery validate在ie8下的bug解决方法_jquery

项目用到了jquery的表单校验插件validate,之前一直都只是做很简单的校验,没有做过稍微复杂的应用,近期项目对应用的要求提高了,一个页面中有两个提交按钮,然后表单校验是绑定在按钮的点击事件上的,如下.  然后很自然的就用到了插件的valid()函数:  这个确实能达到相要的效果,但是在ie8下竟然有问题,valid()方法始终返回false,而且所有的字段都会被当成必填字段校验,纠结了好久,因为jquery的插件代码都很复杂,所以刚开始看特别费劲,后来一步一步排查,找到问题了,问题出在a

js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法

  这篇文章主要介绍了js插件设置innerHTML时在IE8下提示"未知运行时错误"解决方法,较为详细的分析了错误的原因及对应的解决方法,需要的朋友可以参考下 本文实例讲述了js插件设置innerHTML时在IE8下提示"未知运行时错误"解决方法.分享给大家供大家参考.具体分析如下: 问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错"未知运行时错误": ? 1 2 3 4 5 <div id="di

IE8下Ajax缓存问题及解决办法_AJAX相关

Ajax简介 AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和XML(标准通用标记语言的子集). AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡

JQuery.validate在ie8下不支持的快速解决方法_jquery

一.在ie8下回有问题的代码 1.JQuery.validate验证框架是通过页面form表单提交验证<input/>标签中输入是否符合自己的规则的 <form id="cardTypeFrm"> <table width="100%" cellspacing="0" cellpadding="0" class="table_pzh"> <tbody> <

Excel 2010/2007 折线图表中的断裂解决办法

在日常工作当中,当需要使用图表来直观展现数据随时间变化的趋势时,可以使用折线图来达到目的.但是当某个时间段内数据为空值或零值时,就会使得图表当中的折线出现断裂的情况,影响数据信息的展现.如下图所示:     此时,我们可以通过简单的设置快速解决该问题.   首先单击图表将其选中,在图表工具"设计"选项卡的"数据"选项组中单击"选择数据"按钮.     在随后弹出的对话框中单击"隐藏的单元格和空单元格"按钮.     在打开的设

css中的background在firefox ie7 ie6下不同的表示

css中的background在firefox ie7 ie6下不同的表示

下拉菜单select样式设置(兼容IE6/IE7/IE8/火狐)

本文将为大家详细介绍下下拉菜单select样式如何设置才能够兼容IE6/IE7/IE8/火狐等主流浏览器,具体的实现代码如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助     复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <ht