因为浏览器的标准的不同,同时也受 DTD 的影响,同一个属性值,在不同的浏览器下可能呈现不一样的结果,从而导致预期的效果在某些浏览器下无法呈现。 这里我所发现的是关于 document.body.clientHeight 属性值。 测试的系统是 Windows 2003,屏幕分辨率 1024 * 768,对比的浏览器是 Firefox 1.0.6 CHS、Opera 8.01 CHS、Internet Explorer 6.0 CHS。 文档的 <body> 和 </body> 之间没有任何内容,三种浏览器下获得的值,分别是 0、646、18。 在 BODY 上添加 onclick 行为,Firefox 下,任何地方均有效,Opera 任何地方均无效,Internet Explorer 仅在距离页面顶部约 18px 高度范围内有效。 这个时候如果去掉关于 DTD 的定义,则三款浏览器下,任何地方均有效。
个人认为,IE 之所以被那么多人选用,在于使用 Window$ 系统的占绝大多数,而 IE 提供了丰富的 ActiveX 来扩展其功能,对于那些功能应用型的网站来说,就很重要了。 这里也不是要一味地去排斥 IE 或者其它。 根据自己面向的用户群,结合功能需求来选择——很多是后 WEB 开发就是如此,有得必有失。 至于说不明白上面的,我觉得楼主只是告诉我们存在的现象,但是没有列出合理的解决方法。去掉 DTD ,只是一个权宜之计罢了。
经过测试,onclick 行为不应该作用在 BODY 上,作用在 DOCUMENT 上,即对整个文档有效。 但是在 Opera 下面,背景的垂直属性有些问题,即 no-repeat center center ,得到的是横向居中,垂直顶端的背景图片。