本文节选自SitePoint新书《DHTML Utopia: Modern Web Design Using JavaScript & DOM》,该书深入探讨了DHTML技术,教你如何在不牺牲可用性和标准兼容性的前提下,创建丰富的用户体验。作者Stuart Langridge 运用Web标准,并分离代码和标记,构建引人入胜、实用且交互性强的DHTML应用。
本书涵盖300多页的DHTML技巧,内容包括文档对象模型(DOM)、远程脚本、Ajax、XML-RPC和XPath等技术,帮助你创建属于自己的Web项目应用。例如,构建符合标准的分层导航菜单;创建动画工具提示;使用正则表达式验证表单数据并提供动态反馈;构建AJAX注册表单,无需提交表单即可告知用户选择的用户名是否已被占用。
以下章节摘录将带你快速了解DHTML的核心技术和应用。更多内容,请访问本书页面或查看完整版目录。你也可以下载PDF版本。现在,让我们进入第一章。
本章简要概述构建DHTML网站所需的基础知识,包括HTML、CSS和JavaScript的结合使用。DHTML并非一种单一技术,而是这三种技术的巧妙融合,如同烹饪艺术,最终呈现的结果,可能是简单的家常菜,也可能是盛大的宴会。
网站是用HTML编写的。为了构建成功的DHTML增强型网站,你的HTML必须满足两个条件:有效(valid) 和 语义化(semantic)。
有效HTML: 遵循HTML规范的规则,确保你的HTML代码符合标准,这对于构建DHTML至关重要。这包括正确嵌套标签、关闭容器标签以及使用文档类型声明(DOCTYPE)。 使用W3C验证器可以检查HTML的有效性。
语义化HTML: 使用HTML标签来描述文档元素的性质,而不是其外观。例如,使用<code><p></p>
标签表示段落,使用<blockquote></blockquote>
标签表示引用,而不是使用<br>
或<font></font>
标签来控制文本格式。语义化标记使应用DHTML技术更加容易。
层叠样式表(CSS)用于描述HTML的呈现方式,即定义页面上每个元素的外观。通过CSS样式,DHTML页面可以独立处理页面的外观和内容,实现干净的分离。
JavaScript是一种用于向网站添加动态行为的编程语言。HTML定义页面结构,CSS定义页面外观,而JavaScript则定义用户交互行为,例如点击按钮、拖动图像或移动鼠标等。JavaScript与DOM一起工作,将操作与不同的事件(鼠标悬停、拖动和点击)关联起来。
良好的JavaScript开发环境和代码编辑器可以极大地提高开发效率。建议使用Mozilla Firefox进行调试,并使用支持语法高亮的代码编辑器。
DOM将HTML页面描述为一组JavaScript程序可以访问的对象,它将页面元素映射到一个树形结构(DOM树)。每个元素成为一个元素节点,每个文本片段成为一个文本节点。DOM树的结构与HTML标记的嵌套级别相对应。有效且正确嵌套的HTML对于构建正确的DOM树至关重要。
遍历DOM树是指依次访问树中每个节点的过程。这通常使用递归实现。 document.getElementById()
方法用于获取指定ID的元素,document.getElementsByTagName()
方法用于获取所有指定类型的元素。
你可以使用JavaScript修改DOM元素的属性、文本内容和样式属性。appendChild()
方法用于添加新的子节点,insertBefore()
方法用于在指定节点之前插入新的子节点,removeChild()
方法用于删除子节点,cloneNode()
方法用于复制节点。
本章提供了两个示例:一个可扩展表单,允许用户动态添加输入字段;一个模块化图像切换,通过JavaScript自动检测并设置图像切换效果,无需手动修改HTML代码。
事件是发生在元素上的动作,例如鼠标点击、表单更改等。DHTML编程的核心是事件处理,即编写代码对事件做出响应。
现代的DOM事件处理方式使用addEventListener()
方法(以及IE的attachEvent
方法)将事件监听器附加到元素上。事件监听器函数接收一个事件对象作为参数,该对象包含事件的详细信息,例如目标元素、鼠标坐标等。
事件冒泡是指事件从目标元素向上冒泡到其祖先元素的过程。stopPropagation()
方法可以阻止事件冒泡。preventDefault()
方法可以阻止事件的默认行为,例如阻止链接的跳转。
为了确保代码在不同浏览器中都能正常工作,需要使用跨浏览器兼容的事件处理方法,例如使用addEvent()
函数来统一处理addEventListener()
和attachEvent()
方法。
本章提供了两个示例:智能链接,允许用户选择是否在新窗口中打开链接;表格高亮,当鼠标悬停在表格单元格上时,高亮显示该单元格所在的行和列。
为了确保DHTML增强功能在不支持这些功能的浏览器中不会造成问题,需要进行浏览器特性检测。
特性检测是指直接检查浏览器是否支持特定功能的方法,而不是通过识别浏览器类型来推断其支持的功能。 这包括检查DOM方法和属性是否存在。
本章提供了一个可滚动的图像示例,该示例使用特性检测来确保代码在不同浏览器中都能正常工作,并处理了鼠标坐标获取的浏览器差异。
本书剩余章节将进一步深入探讨DHTML的更多高级技巧和应用。
(图片保持原格式和位置不变)
由于无法访问图片链接,图片无法显示。请确保图片链接有效。
以上是DHTML Utopia:使用JavaScript和DOM的现代网络设计的详细内容。更多信息请关注PHP中文网其他相关文章!