本文介绍了IE和Navigator两种浏览器对DHTML标准实现的差异,特别是如何编写Navigator中运行的DHTML程序。
DHTML(Dynamic HTML)是W3C组织提出的一种新的规范,它对原有的HTML做了许多扩充,并结合Javascript,使得静态的HTML页面产生了许多动态效果,例如菜单的展开和收起,页面元素的外观动态改变等。IE 4.0以上,Navigator 4.0以上的版本都支持这个标准。但是,不同的浏览器厂家对它都做了不同程度的扩充。以最流行IE的和NS为例,IE的实现更接近于W3C的方案,而NS,说实话,与W3C的方案差异很大,而且并没有完全实现,甚至可以说是另一套方案。笔者在初识DHTML时,按照书上讲的编写了几个小程序,在IE上一试就通,而在NS上可以说费尽了周折才逐渐找到解决方案。由于市面上很少有讲述NS的DHTML实现方案的书(大概NS由于的实现不符合标准),而真正的商业网站至少应同时支持IE和NS这两种主要的浏览器,我愿意把我的一些心得写出来与大家共享,使大家不必再走我走过的弯路。对于二者的实现相同的部分,本文作一简略介绍,您若有兴趣可参考有关书籍或网上资源。
DHTML实际上由三两部分组成:CSS(Cascade Style Sheet,级联样式表),层(Layer)和Javascript。
所谓CSS,概念上类似于C++中的类,在类定义中指明元素的外观样式,如字体,颜色,大小等等,页面中的任何一个HTML元素如被指定属于这个类,就自动拥有该类的特性;还可以为某种HTML元素定义样式,这样页面中的所有这种元素都有了同样的外观。如果将这样的样式定义存在一个单独的.css文件中(就象C++那样将类定义存在 .h文件中),再在页面中将其包含进来,则一个网站的所有页面就有了同样的外观。IE和NS对CSS的实现基本相同,在此就不再详细介绍了。
两者的差异主要体现在层的实现上。所谓层,就是页面上的一块区域,其中可以包含任何的HTML元素,通过改变层的属性,其间的元素可以跟着出现,消失,更改,移动等。
在IE中,层依靠<DIV></DIV>和<SPAN></SPAN>来实现,两者基本相同,通常<DIV>用于较大的层,<SPAN>用于较小的层,并且<DIV>在实现的层后面加上一个回车换行,而<SPAN>不加。它的语法如下(二者相同):
<div id=layername style="style definition">Layer content</div> 或
<div id=layername class="classname">Layer content</div>
编写跨浏览器的DHTML应用程序。大家可以去www.dicp.ac.cn看看这个对ie和ns都适用的
时间: 2024-10-23 14:15:07
编写跨浏览器的DHTML应用程序。大家可以去www.dicp.ac.cn看看这个对ie和ns都适用的的相关文章
编写跨浏览器兼容的 CSS代码的金科玉律
作为 Web 设计师,你的网站在各种浏览器中有完全一样的表现是很多人的目标,然而这是一个永远无法真正实现的目标,很多人认为,完美的跨浏览器兼容并不必要,这样说虽然没错,但在很多情形,一种近似的兼容还是很容易实现的,本文讲的是各种跨浏览器兼容的 CSS 编码准则和技巧. 理解 CSS 盒子模型 如果你想实现不需要很多奇巧淫技的跨浏览器兼容的 CSS 代码,透彻地理解 CSS 盒子模型是首要事情,CSS 盒子模型并不难,且基本支持所有浏览器,除了某些特定条件下的 IE 浏览器. CSS 盒子模型负责
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]_javascript技巧
序号 操作 分类 IE(6.0) FireFox(2.0) Mozilla(1.5) 当前浏览器 备注 1 "." 访问tag的固有属性 OK OK OK OK 2 "." 访问tag的用户定义属性eg: <input type="checkbox" myattr="test"> OK NO NO OK 可以用getAttribute函数 替代 3 obj.getAttribute 访问tag的固有属性 OK OK
解决Flexbox跨浏览器兼容Bug
早在2013年9月,我在测试我的Solved by Flexbox项目时,在IE10和IE11中发现了一个Bug,就是Sticky footer实际上不会粘贴在页面的底部.我花了很多时间来解决这个问题,但始终没有成功. 起初,我真的很生气.在Flexbox出现之前,如果在不知道页脚的确切尺寸情况之下,要使用纯CSS来实现Sticky Footer的效果是不太可能.Flexbox改变了这一切,可以使用CSS解决这个问题. 失望之后,我最终得出一个结论,这不是什么大不了的事情.我的意思是,从渐进增强
Flexbox跨浏览器兼容Bug解决方法
在IE10和IE11中发现了一个Bug,就是Sticky footer实际上不会粘贴在页面的底部.我花了很多时间来解决这个问题,但始终没有成功. 起初,我真的很生气.在Flexbox出现之前,如果在不知道页脚的确切尺寸情况之下,要使用纯CSS来实现Sticky Footer的效果是不太可能.Flexbox改变了这一切,可以使用CSS解决这个问题. 失望之后,我最终得出一个结论,这不是什么大不了的事情.我的意思是,从渐进增强的角度来看,我的解决方案还是相当不错的.虽然它在IE并不完美,但不至于坏得
开发跨浏览器的JavaScript方法说明第1/2页_javascript技巧
开发跨浏览器的JavaScript 1. childNodes在ff中和ie的区别. ff中的node(nodeType = 1)都是用textNode(nodeType = 3)分开的,而ie/op不是这样的. <div id="box1"><span>content</span></div> 在ff下,box1的childNodes为3个,ie下为1个. 2. 设置某个node对象的style class名称. ie中要设置某个nod
最优化跨浏览器Ajax应用程序
简介:如果所有的浏览器.计算机型号和 Ajax 应用程序的用户都一样,对开发人员来说,那真是妙 极了.但实际的情况是它们往往各不相同.在跨浏览器.计算机和单个用户设置方面开发行为可预知的 应用程序时,开发人员往往需要面对重重困难.当用户将 Ajax 应用程序从一个浏览器类型转换到另一 个浏览器类型时(尤其是在将 Ajax 应用程序传递给 Web 服务门户时),由于每个浏览器固有的限制, 无法保证拥有相同的浏览器体验.在本文中,作者 Judith Myerson 简单介绍了这些限制以及应该着重 避
《JavaScript忍者秘籍》——1.3 跨浏览器注意事项
1.3 跨浏览器注意事项 完善JavaScript编程技能将引导我们不断前行,尤其是目前,除了浏览器端以外,JavaScript还能够使用Rhino.V8或Node.js库等JavaScript引擎在服务器端运行.但开发基于浏览器的JavaScript应用程序(这也是本书的重点)时,越早越好的是,我们首先要应对:浏览器及其令人恼火的问题和矛盾. 理想世界中,所有的浏览器中都没有bug,并且支持以一致的方式支持Web标准,但是我们都知道我们并不生活在这种世界里. 近来浏览器的质量已经有了大大改善,
利用 Visual Studio 2013 进行跨浏览器、编码 UI 测试
在过去几年中,基于 Web 的解决方案为全世界用户提供便利的访问,因而非常受欢迎.用户喜欢它们的另一个原因是它们的方便性.用户无需安装单独的应用程序:仅凭浏览器就能从任何连接 Internet 的设备连接自己的帐户.但是,从软件开发者和测试者的角度看,用户可以选择任何 Web 浏览器会带来这样一个问题:解决方案必须经过多种浏览器的测试.本文将介绍如何通过简单的方法解决这个问题,即只使用 C# 创建任何新型浏览器都可以执行的编码 UI 测试用例. 新 Visual Studio 几年前,当 Vis
6款工具测试wordpress主题跨浏览器兼容性
至今为止,做了不少wordpress主题,有免费的,也有定制的,最让头疼的是,在不同的浏览器内测试WordPress主题的兼容 性.可能你的电脑上有你最常用的浏览器的最新版本,但是为了测试浏览器的兼容性,我们不得不将自己的wordpress主题放在不同的浏览器环境中进行测 试. 传统上,你将不得不使用不同的操作系统.虚拟机或另一台计算机上安装一些不同版本的浏览器来测试你的主题,可以想象这个方法是不方便的,现在有其他的方法来轻松测试不同的浏览器的兼容性了. 近年来,已经有很多基于Web的服务,让开