HTML 5 也被称为 Web Applications 1.0。为了实现这个目标,增加了几个为 Web 页面提供交互体验的新元素:
details
datagrid
menu
command
这些元素都可以根据用户的操作和选择改变显示的内容,而不需要从服务器装载新页面。
details
details 元素表示在默认情况下可能不显示的详细信息。可选的 legend 元素可以提供详细信息的摘要。
details 元素的用途之一是提供脚注和尾注。例如:
The bill of a Craveri's Murrelet is about 10% thinner
than the bill of a Xantus's Murrelet.
< details>
< legend>[Sibley, 2000]</legend>
< p>Sibley, David Allen, The Sibley Guide to Birds,
(New York: Chanticleer Press, 2000) p. 247
< /p>
< /details>
没有指定具体的显示方式。浏览器可以选用脚注、尾注和工具提示等方式。
每个 details 元素可以有一个 open 属性。如果设置了这个属性,那么详细信息在最初就显示出来。如果没有设置这个属性,那么会隐藏它们,直到用户要求显示它们。无论是哪种情况,用户都可以通过单击一个图标或其他控件来显示或隐藏详细信息。
datagrid
datagrid 元素提供一个网格控件。可以用它显示树、列表和表格,用户和脚本可以更新这些界面元素。与之相反,传统的表格主要用来显示静态数据。
datagrid 从它的内容(一个 table、select 或其他 HTML 元素)获得初始数据。例如,代码 9 中的 datagrid 包含一张成绩表。在这个示例中,datagrid 的数据来自一个 table。更简单的一维 datagrid 可以从 select 元素获得数据。如果使用其他 HTML 元素,那么每个子元素成为网格中的一行。
<datagrid>
< table>
< tr><td>Jones</td><td>Allison</td><td>A-</td><td>B </td><td>A</td></tr>
< tr><td>Smith</td><td>Johnny</td><td>A</td><td>C </td><td>A</td></tr>
< tr><td>Willis</td><td>Sydney</td><td>C-</td><td>D</td><td>F</td></tr>
< tr><td>Wilson</td><td>Frank</td><td>B-</td><td>B </td><td>A</td></tr>
< /table>
< /datagrid>
这个元素与常规表格的区别在于,用户可以选择行、列和单元格;把行、列和单元格折叠起来;编辑单元格;删除行、列和单元格;对网格排序;以及在客户机浏览器中直接进行其他数据操作。可以用 JavaScript 代码监视更新。Document Object Model(DOM)中增加了 HTMLDataGridElement 接口以支持这个元素(代码 10 HTMLDataGridElement)。
interface HTMLDataGridElement : HTMLElement {
attribute DataGridDataProvider data;
readonly attribute DataGridSelection selection;
attribute boolean multiple;
attribute boolean disabled;
void updateEverything();
void updateRowsChanged(in RowSpecification row, in unsigned long count);
void updateRowsInserted(in RowSpecification row, in unsigned long count);
void updateRowsRemoved(in RowSpecification row, in unsigned long count);
void updateRowChanged(in RowSpecification row);
void updateColumnChanged(in unsigned long column);
void updateCellChanged(in RowSpecification row, in unsigned long column);
};
还可以使用 DOM 在网格中动态地装载数据。也就是说,datagrid 可以不包含那些提供初始数据的子元素。可以用一个 DataGridDataProvider 对象设置它(代码 11 DataGridDataProvider)。这样就可以从数据库、XmlHttpRequest 或者 JavaScript 代码能够访问的任何资源装载数据。
interface DataGridDataProvider {
void initialize(in HTMLDataGridElement datagrid);
unsigned long getRowCount(in RowSpecification row);
unsigned long getChildAtPosition(in RowSpecification parentRow,
in unsigned long position);
unsigned long getColumnCount();
DOMString getCaptionText(in unsigned long column);
void getCaptionClasses(in unsigned long column, in DOMTokenList classes);
DOMString getRowImage(in RowSpecification row);
HTMLMenuElement getRowMenu(in RowSpecification row);
void getRowClasses(in RowSpecification row, in DOMTokenList classes);
DOMString getCellData(in RowSpecification row, in unsigned long column);
void getCellClasses(in RowSpecification row, in unsigned long column,
in DOMTokenList classes);
void toggleColumnSortState(in unsigned long column);
void setCellCheckedState(in RowSpecification row, in unsigned long column,
in long state);
void cycleCell(in RowSpecification row, in unsigned long column);
void editCell(in RowSpecification row, in unsigned long column, in DOMString data);
};
menu 和 command
menu 元素实际上在 HTML 2 中就出现了。在 HTML 4 中废弃了它,但是 HTML 5 又恢复了它并指定了新的意义。在 HTML 5 中,menu 包含 command 元素,每个 command 元素引发一个操作。例如,代码 12 HTML 5 菜单 是一个弹出警告框的菜单。
<menu>
< commandlabel="Do 1st Command"/>
< command label="Do 2nd Command"/>
< commandlabel="Do 3rd Command"/>
< /menu>
还可以用 checked="checked" 属性将命令转换为复选框。通过指定 radiogroup 属性,可以将复选框转换为单选按钮,这个属性的值是互相排斥的按钮的组名。
除了简单的命令列表之外,还可以使用 menu 元素创建工具栏或弹出式上下文菜单,这需要将 type 属性设置为 toolbar 或 popup。例如,代码 13. HTML 5 工具栏 显示一个与 WordPress 等 blog 编辑器相似的工具栏。它使用 icon 属性链接到按钮的图片。
<menu type="toolbar">
< commandlabel="strong" icon="bold.gif"/>
< command onclick="insertTag(buttons, 1);"label="em" icon="italic.gif"/>
< command onclick="insertLink(buttons, 2);" label="link" icon="link.gif"/>
< commandlabel="b-quote" icon="blockquote.gif"/>
< command onclick="insertTag(buttons, 4);"label="del" icon="del.gif"/>
< command onclick="insertTag(buttons, 5);"label="ins" icon="insert.gif"/>
< command label="img" icon="image.gif"/>
< commandlabel="ul" icon="bullet.gif"/>
< commandlabel="ol" icon="number.gif"/>
< commandlabel="li" icon="item.gif"/>
< command label="code" icon="code.gif"/>
< command onclick="insertTag(buttons, 11);" label="cite" icon="cite.gif"/>
< command label="abbr" icon="abbr.gif"/>
< command label="acronym" icon="acronym.gif"/>
< /menu>
label 属性提供菜单的标题。例如,代码14. HTML 5 Edit 菜单 显示一个 Edit 菜单。
<menu type="popup" label="edit">
< command label="Undo"/>
< command label="Redo"/>
< commandlabel="Cut"/>
< command onclick="copy()" label="Copy"/>
< command onclick="paste()"label="Paste"/>
< command label="Clear"/>
< /menu>
菜单可以嵌套在其他菜单中,形成层次化的菜单结构.
分享到:
相关推荐
绘制工具和技术:讲解使用HTML5 Canvas和JavaScript进行图形绘制的基本方法,以及如何捕捉鼠标事件来定义多边形的顶点。 多边形的闭合与填充:指导如何通过编程逻辑闭合多边形并选择颜色进行填充。 交互式实践环节:...
在"HTML5系列教程-HTML5表单提交和PHP环境搭建"中,我们将深入探讨两个核心主题:HTML5表单的新特性以及如何配置PHP开发环境。 首先,HTML5对表单元素进行了大幅度的升级,提供了更多的输入类型,如`...
这个压缩包“unigui-调用html AjaxEvent交互 author ozhy基础.rar”似乎包含了一个关于如何在Delphi应用中利用Unigui框架与HTML页面进行Ajax事件交互的基础教程。Unigui是一个基于VCL和FireMonkey的跨平台UI框架,它...
### 人机交互基础教程知识点解析 #### 一、绪论:人机交互概览 - **人机交互(Human-Computer Interaction, HCI)**:指的是人类与计算机系统之间的交互方式,涉及心理学、认知科学、设计学等多个学科,旨在创建...
通过本系列教程的学习,你将能够熟练运用HTML5的各类特性和框架,构建高效、交互性强的Web应用,无论是在桌面端还是移动端都能游刃有余。开始你的HTML5之旅吧,为未来的Web开发打下坚实的基础。
网站模板源码-html5响应式交互网站源码 html网络工作室响应式模板(demo21)。资源中包含了详细的系统图文搭建教程。源码都是实际项目,经过测试可以正常稳定运行在服务器,需要具备基础服务器搭建知识,不会搭建的...
HTML5是下一代网页标准,它在原有的HTML4基础上进行了大量改进和创新,旨在提供更丰富的交互性和媒体支持,以及更好的数据存储与访问能力。本教程针对PDF格式,将引导新手从基础到高级全面掌握HTML5的相关知识。 ...
HTML5游戏开发是一种基于Web平台的游戏制作技术,利用HTML5、CSS3和JavaScript等现代Web技术,无需插件即可在浏览器中实现丰富的交互性和高性能的游戏体验。本教程以PPT形式详细介绍了HTML5游戏开发的相关知识,旨在...
1.png到5.png这些图片文件可能是交互控件的截图或者是开发流程的步骤图,直观地展示了控件的外观和使用方法,或者是在某些特定步骤的界面示例。这对于初学者理解和模仿源码中的设计模式非常有帮助。 在使用这个资源...
这一套javascript教程分九个章节从什么是javascript、javascript的简单应用一直介绍到如何用javascript实现复杂的交互,对于javascript初学者和进阶者来说,都是一部不可多得的优秀教程。 一、 javascript语言概况 ...
它允许开发者结合HTML、VBScript或JScript等脚本语言,构建能够与用户交互、处理数据并返回动态内容的网页。ASP文件的扩展名通常是.asp。 **ASP工作原理** 当用户通过浏览器请求一个ASP页面时,请求首先会被Web...
总结,"bootstrap-table真实交互数据"示例是一个实用的教程,它展示了如何利用Bootstrap Table插件构建一个与后台实时交互的数据表格。通过对HTML、JavaScript、JSON数据格式以及Bootstrap Table的配置和事件的理解...
HTML5是Web开发领域的一次重大革新,它在2014年被...通过这个HTML5系列教程,你将系统地学习HTML5的各种特性,并能将其应用到实际项目中,无论是创建响应式网站还是开发原生感的移动应用,HTML5都是不可或缺的工具。
从基础的网页元素操作到复杂的交互式内容创建,通过这三个教程,学习者可以掌握构建动态、交互且视觉效果出众的网页所需的技能。无论你是网页设计初学者还是寻求技能提升的专业人士,这个教程集合都将是一个宝贵的...
JS特效_Jquery特效_HTML5教程_前端素材_编程知识_前端素材.url"则可能是一个链接,指向更多相关的HTML5教程和前端素材资源。 学习和掌握HTML5 Canvas的交互,可以帮助开发者创建出更具吸引力和用户体验的Web应用,...
A-Frame引擎开发:A-Frame输入与交互系统_(2).HTML与WebVR概述.docx A-Frame引擎开发:A-Frame输入与交互系统_(3).A-Frame输入系统介绍.docx A-Frame引擎开发:A-Frame输入与交互系统_(3).键盘与鼠标输入.docx...
《HTML5+CSS3网站设计基础教程》是一门旨在教授计算机相关专业学生如何设计和构建现代网页的专业基础课程。这门课程涵盖了从HTML5的基本概念到CSS3的高级特性的全面知识,旨在培养学生的网页设计技能,使他们能够...
10. **社区支持**:作为开源项目,Cocos2d-html5有一个活跃的开发者社区,提供丰富的教程、示例代码和插件,为学习和解决问题提供了便利。 总之,Cocos2d-html5-v2.2.3是一个强大的游戏开发框架,它利用HTML5的力量...
HTML5是下一代超文本标记语言,它在2014年被正式确立为Web标准,极大地丰富了网页内容的表现力和交互性。本教程的源代码涵盖了HTML5的基础概念、语法以及常见应用,旨在帮助初学者快速入门并掌握HTML5编程。 一、...
【HTML5实战游戏开发教程——冰桶挑战】 HTML5作为现代网页开发的主流技术,以其强大的功能和跨平台兼容性,极大地推动了网页游戏的发展。本教程“3 冰桶挑战-HTML5-实战游戏开发教程”正是针对这一主题,旨在帮助...