第2章 HTML5中常用的交互元素
2.1 内容交互元素
在H5中,与元素属于新增的内容交互元素,主要用于文档的标题、细节、内容的交互显示。
2.1.1 detail元素
(详情)是HTML5中新增的一个标记,用于说明文档或某个细节信息的作用,常与(概要)元素搭配使用。
默认是不显示的,与summary配合使用时,单击summary标记后才显示details中设置的内容。
元素的常用属性以及描述:
- open:值open,用于控制summary元素是否显示,默认不可见。
- subject:值sub_id,用于设置元素对应的项目ID号。
- draggable:值true/false,用于是否可以拖动元素,默认不可拖动。
示例:交互元素details的使用
1.功能描述
创建新H5页面,加入details元素,通过不设置open和设置,查看结果并比较。
2.实现代码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>交互元素<details>的使用</title><style>body {font-size: 12px;}span {font-weight: bold;}details {overflow: hidden;padding-left: 20px;position: relative;display: block;}details[open] {height: auto;}</style>
</head><body><span>隐藏注脚</span><details>本页面生成于2024-9-11</details><span>显示注脚</span><details open>本页面生成于2024-9-11</details>
</body></html>
3.页面效果
2.1.2 summary元素
summary常包含于元素中,配合使用,元素说明文档的标题,
说明文档的详细信息。summary是details第一个子元素,二者经常同时出现在页面中。
实例:交互元素summary与details的结合使用
1.功能描述
新建页面中分别加入一个元素和一个元素,当显示summary元素内容时,其子元素details以字体加粗的形式展示在页面中。summary尽量放第一个位置。
2.实现代码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>交互元素summary的使用</title><style>body {padding: 5px;font-size: 12px;}summary {font-weight: bold;}</style></head><body><details open>本页面生成于2024-9-11<summary>页面说明</summary>本页面生成于2024-9-12</details></body>
</html>
3.页面效果
2.2 菜单交互元素
在H5交互元素中,除了内容交互元素外,使用较为频繁的是菜单交互元素,其中以menu与command两个元素为代表。
2.2.1 menu元素
menu是H5重新恢复使用并赋予了新的功能含义。常与
- 列表元素结合使用,用来定义一个列表式的菜单,其属性如下:
- autosubmit:true/false,true表示表单中的元素发生变化时会自动提交。
- label:任意字符,为菜单定义一个可见的标注。
- type:context toolbar list,定义菜单显示的类型,默认list,表示列表显示菜单中的选项。
案例:交互元素menu的使用
1.功能描述
新建H5页面,添加menu元素,在该元素中加入li列表元素,列表元素中放置与元素,用于展示图片与标题,最后通过样式代码,当用户将鼠标移至某个menu元素时,展示菜单中某选项被选中的效果。
2.代码实现
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>交互元素<menu>的使用</title><style>body {padding: 5px;font-size: 12px;}menu {padding: 0;margin: 0;display: block;border: 1px solid #365167;width: 222px;}menu li {list-style-type: none;padding: 5px;margin: 5px;width: 200px;}menu li:hover {border: 1px solid #7da2ce;background-color: #cfe3fd;}menu li img {clear: both;padding-right: 8px;}menu li span {display: inline-block;font-size: 13px;}</style>
</head><body><menu><li><img src="img/JS高级.jpg" alt="" /><span>JS高级程序设计</span></li><li><img src="img/并发编程.jpg" alt="" /><span>Java并发编程</span></li><li><img src="img/计算机网络.jpg" alt="" /><span>计算机网络</span></li><li><img src="img/实战.jpg" alt="" /><span>HTML5实战</span></li></menu>
</body></html>
3.页面效果
这里忘记了浮动相关的内容,导致span无法垂直居中,还需复习后再完善!!!!!!
2.2.2 command元素(谷歌不支持了解即可)
定义各种类型的命令按钮,利用该标记的url属性可以添加图片,并且实现图片按钮效果,改变标记中的type属性值,还可以定义复选框或单选框按钮。属性如下:
- checked:值checked,类型定义为checkbox或radio是否选中
- disabled:disabled,按钮是否可用
- icon:url,按钮中图片地址
- label:command name,可显示于页面中按钮的名称
- radiogroup:radiogroup name,定义为radio是,设置群组
- type:checkbox command radio,按钮的类型,默认radio
与menu结合使用,可以实现弹出式下拉菜单,单击菜单的某个选项时,执行相应的操作。
实例:交互元素command与menu的结合使用
1.功能描述
新建H5页面,分别添加一个menu和两个command元素,并将command元素包含于menu中,当单击其中一个command元素时,弹出一个对话框,并显示对应操作的内容。
2.代码实现
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>交互元素command与menu的结合使用</title><style>body {padding: 5px;font-size: 12px;}menu {display: block;width: 30px;height: 50px;padding-left: 10px;padding-bottom: 10px;border: 1px solid #365167;}command {float: left;cursor: hand;width: 30px;margin: 5px;}#dialog {display: none;position: absolute;left: 25%;top: 9%;font-size: 13px;width: 320px;height: 150px;border: 3px solid #666;}#dialog.title {padding: 5px;background-color: #eee;height: 21px;line-height: 21px;}#dialog .title .fletf {float: left;}#dialog.content {padding: 50px;}</style><script>function commClick(strS) {document.getElementById("dialog").style.display = "block";var strContent = "正在操作<font color=red>" + strS + "</font>选项";document.getElementById("divTip").innerHTML = strContent;}</script>
</head><body><menu><command onclick="commClick('文件')">文件</command><command onclick="commClick('打开')">打开</command></menu><div id="dialog"><div class="title"><div class="fleft">提示</div><div class="fright">关闭</div></div><div class="content"><div class="divTip"></div></div></div>
</body></html>
3.页面效果
由于主流浏览器不兼容,则无法正常显示,火狐可以查看,这里只做了解即可。
2.3 状态交互元素
增强用户UI体验,状态交互元素包括与元素
2.3.1 progress元素
用来表示某个任务完成的进度(进程)。
例如下载文件的进度值,可以通过该元素动态展示在页面中,展示的方式既可以使用整数1-100,也可以使用百分比10%-100%.
元素的属性:
- max:整数或者浮点数,设置完成时的值,表示总体工作量。
- value:整数或者浮点数,设置正在进行时的值,表示已完成的工作量。
元素设置的值value必须小于或者等于max的值,且两者都必须大于0。
示例:交互元素的使用
1.功能描述
创建新页面,增加progress元素和一个下载按钮,当单击按钮时,元素progress动态展示下载进度状态和百分比信息,下载结束时,提示下载完成!
2.实现代码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>交互元素progress在下载中的使用</title>
</head><body><p id="pTip">开始下载</p><progress value="0" max="100" id="proDownFile"></progress><input type="button" value="下载" onclick="btnClick();" /><script>var intValue = 0;var intTimer;var objPro = document.getElementById('proDownFile');var objTip = document.getElementById("pTip");//定时事件function intervalHandler() {intValue++;objPro.value = intValue;if (intValue >= objPro.max) {clearInterval(intTimer);objTip.innerHTML = "下载完成!";} else {objTip.innerHTML = "正在下载" + intValue + "%";}}//下载按钮单击事件function btnClick() {intTimer = setInterval(intervalHandler, 100);}</script>
</body></html>
3.页面效果
2.3.2 meter元素
用于在一定数量范围内的值,如投票中,候选人各占比例情况以及考试分数等。
meter元素的属性以及描述:以下属性全是数值
- value:展示的实际值,可以是浮点数,默认0
- min:展示的最小值,默认0
- max:展示的最大值,默认1
- low:最低值,必须小于等于min
- high:最高值,必须小于等于max
- optimum:最优值,必须在min与max之间
案例:交互元素meter的使用
1.功能描述
创建两个meter元素,通过设置不同的属性值,展示两个候选人的占票数比例,同时用span元素说明比例的百分数。
2.实现代码
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>交互元素meter的使用</title>
</head><body><p>共120人参与投票,明细如下:</p><p>张三:<meter value="0.3" optimum="1" high="0.6" low="0.1" max="1" min="0"></meter><span>30%</span></p><p>李四:<meter value="70" optimum="100" high="60" low="10" max="100" min="0"></meter><span>70%</span></p>
</body></html>