这个问题我们的建议是如果是完全按照官方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等浏览器进行浏览。