<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>5、表单和表格</title>
</head>
<body>
<!-- <xmp><h1></xmp>能让标签不转义的标签 -->
一、 表格
(一)创建表单
<!--
语法格式:
<table>
<tr>
<td>单元格内的文字</td>
</tr>
</table>
一个表格<table>、<tr>、<td>三个标签缺一不可。其中table表示表格的开始
与结束,tr表示表格的行数,tr标签内有几个td即表示该行有几列
-->
eg:
<body>
<table>
<tr>
<td>名字</td>
<td>科目</td>
<td>分数</td>
</tr>
<tr>
<td>李四</td>
<td>数学</td>
<td>130</td>
</tr>
</table>
<table border="1">
<tr>
<td>名字</td>
<td>科目</td>
<td>分数</td>
</tr>
<tr>
<td>张三</td>
<td>数学</td>
<td>116</td>
</tr>
</table>
</body>
<!-- 以上两个表格,一个设置了border边框属性,一个没有设置
默认情况下,表格边框为0,高和宽有表格内容来支撑
td标签就像一个容器,可容纳所用标签,甚至可以嵌套table标签 -->
(二)<table>标签的属性
<!--
用于控制表格[整体]显示样式的HTML语言属性,但大多数属性可以使用CSS进行代替
属性: 常用属性值
border:设置表格边框(默认为0) 像素
cellspacing:设置单元格之间的空间 像素(默认为2)
cellpadding:设置内容与单元格之间的空间 像素(默认为1)
width:设置表格的宽度 像素
height:设置表格的高度 像素
align:设置表格在网页中的对齐方式 left、center、right
bgcolor:设置表格的背景颜色 预定义的颜色值、十六进制#RGB、rgb(r,g,b)
background:设置表格的背景图像 url地址
1.border
控制表格外边框和双线边框,当属性值大于1时双线边框不会再增大,只会改变外边框
-->
(三)tr标签的属性
<!--
table控制表格整体显示样式,tr控制某一行特殊显示
属性: 常用属性值
height:设置高度 像素
align设置一行内容的对齐方式 left、center、right
valign:设置一行内容的垂直对齐方式 top、middle、botton
bgcolor:设置行背景颜色 预定义的颜色值、十六进制#RGB、rgb(r,g,b)
background:设置行背景图片 url地址
-->
eg:
<body>
<table border="1" width="400" height="240" align="cennter">
<tr height="80" align="center" valign="top" bgcolor="#00CCFF">
<td>姓名</td>
<td>性别</td>
<td>科目</td>
<td>分数</td>
</tr>
<tr>
<td>郑老</td>
<td>男</td>
<td>java</td>
<td>98</td>
</tr>
<tr>
<td>林老</td>
<td>男</td>
<td>软件测试</td>
<td>95</td>
</tr>
<tr>
<td>熊老</td>
<td>男</td>
<td>java</td>
<td>59</td>
</tr>
</table>
</body>
(四)td标签的属性
<!--
tr标签控制表格中的一行显示样式,td标签内嵌于tr标签内能达到对某一个单元格进行控制
常用属性: 常用属性值
width:设置单元格宽度 像素
height:设置单元格高度 像素
align:设置单元格内容的水平对齐方式 left、center、right
bgcolor:设置表格的背景颜色 预定义的颜色值、十六进制#RGB、rgb(r,g,b)
background:设置表格的背景图像 url地址
colspan:设置单元格横跨的列数(合并水平方向单元格) 正整数
rowspan:设置单元格竖跨的行数(合并竖直方向单元格) 正整数
-->
eg:
<body>
<table border="1" width="400" height="240" align="cennter">
<tr height="80" align="center" valign="top" bgcolor="#00CCFF">
<td>姓名</td>
<td>性别</td>
<td>电话</td>
<td>住址</td>
</tr>
<tr>
<td>小王</td>
<td>女</td>
<td>112233</td>
<td rowspan="3">海淀</td>
</tr>
<tr>
<td>小李</td>
<td>男</td>
<td>5566677</td>
</tr>
<tr>
<td>小张</td>
<td>男</td>
<td>787798</td>
</table>
</body>
(五)th标签及其属性
<!--
设置表格的表头,使格式更加清晰
用th标签代替相应td标签即可
用法与td标签相同,语义不同,th标签文本默认居中加粗
-->
(六)表格的结构
<!--
...很久以前用表格进行网页布局把表格分为头部、主体、页脚
<thead></thead>:用于定义表格头部,必须位于<table></table>标签中
<tfoot></tfoot>:用于定义表格页脚,位于<table></table>中,<thead></thead>标签之后
<tbody></tbody>:用于定义表格主体,位于<table></table>中,<tfoot></tfoot>标签之后
-->
eg:
<body>
<table width="600" border="1" cellspacing="0" align="center">
<caption>表格的名称</caption> <!-- caption定义表格的标题 -->
<thead>
<tr>
<td colspan="3">网站logo</td>
</tr>
<tr>
<th><a href="#">首页</a></th>
<th><a href="#">关于我们</a></th>
<th><a href="#">联系我们</a></th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3" align="center">底部的基本企业信息©【版权信息】</td>
</tr>
</tfoot>
<tbody>
<tr height="150">
<td>主体的左栏</td>
<td>主体的中间</td>
<td>主体的右侧</td>
</tr>
<tr height="150">
<td>主体的左栏</td>
<td>主体的中间</td>
<td>主体的右侧</td>
</tr>
</tbody>
</table>
</body>
二、CSS控制表格样式
(一)CSS控制表格边框
<!--
<th>和<td>标签可以用padding对其应用内边距属性,其无外边距margin属性
或对<table>标签应用HTML标签属性cellpadding.
<tr>标签也无padding和margin属性
-->
(二)CSS控制单元格的高和宽
<!--
CSS的width和height属性可控制单元格的宽和高;
对同一行或同一列中单元格定义不同高度,最终的宽度或高度取其所在行或列中较大者
-->
eg:
<head>
<style type="text/css">
.t1,.one,.two,.three{border: 1px solid #30F;}
.one{width: 10px;height: 80px;}
.two{width: 50px;height: 80px;}
.three{width:70px;height: 80px;}
</style>
</head>
<body>
<table>
<tr class="t1">
<td class="one">A房间</td>
<td class="two">B房间</td>
</tr>
<tr class="t1">
<td class="three">C房间</td>
<td class="two">D房间</td>
</tr>
</table>
</body>
三、表单
<!--
接收用户数据的平台,如注册页面、网上订货页.
-->
(一)表单的构成
表单控件(文本框、按钮等)、提示信息、表单域(容纳表单控件和提示信息的容器)
(二)创建表单
<form></form>标签被用于定义表单域(容器)
<!--
语法格式:
<form action="url地址" method="提交方式" name="表单名称">各种表单控件</form>
各属性
1、action属性
指定接收并处理表单数据的服务器程序的url地址;提交数据时表单数据会传送到指定页面处理
属性值可为相对路径或绝对路径,还可以是E-mail邮箱(提交表单以邮箱形式传递出去).
2、method属性
设置表单提交方式
属性值: get(默认,保密性差、有数据量限制)、post(保密性好、无数据量限制)
3、name属性
-->
四、表单控件
(一)input控件
<!--
如输入框、提交按钮等元素
语法格式:
<input type="控件类型">
type为其最基本属性
常用属性值:
type="text"---单行文本输入 type="reset"---重置按钮
type="password"---密码输入框 type="image"---图像形式的提交按钮
type="radio"---单选按钮 type="hidden"---隐藏域
type="checkbox"---复选框 type="file"---文件域
type="button"---普通按钮
type="submit"---提交按钮
其他属性
属性---属性值---描述
name---用户定义---控件名称
value--用户定义---input中默认文本值
size---正整数---input控件在页面中显示宽度
readonly---readonly---该控件内容为只读(不能编辑修改)
disabled---disabled---第一次加载页面时禁用该控件(显示为灰色)
checked---checked---定义选择控件默认被选中项
maxlength---正整数---控件允许输入的最多字符数
-->
eg:
<form action="#" method="POST">
用户名: <!-- 单行文本输入框 -->
<input type="text" value="张三" maxlength="6"/> <br/><br>
密码: <!-- 密码输入框 -->
<input type="password" size="40" /> <br/><br/>
性别: <!-- radio单选按钮 -->
<input type="radio" name="sex" checked="checked" />男
<input type="radio" name="sex" />女 <br /><br />
兴趣: <!-- 复选框 -->
<input type="checkbox" />唱歌
<input type="checkbox" />跳舞
<input type="checkbox" />游泳 <br/><br/>
上传头像:
<input type="file"/> <br><br> <!-- 文件域 -->
<input type="submit"/> <!-- 提交按钮 -->
<input type="reset"/> <!-- 重置按钮 -->
<input type="button" value="普通按钮"> <!-- 普通按钮 -->
<input type="image" src="http://127.0.0.1:8848/htmlcode/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9/1/static/logo.png"/> <!-- 图像域 -->
<input type="hidden"/> <!-- 隐藏域 -->
</form>
(二)textarea控件
<!--
input控件只能创建单行文本输入框,而textarea控件能创建输入多行文本输入框,
如留言板
语法格式:
<textarea name="" id="" cols="每行中字符数" rows="显示的行数">文本内容</textarea>
其中,cols、rows为必备属性,其他为可选属性(cols、rows各浏览器显示效果有差异,常使用width、height来定义输入框的宽高)
name(控件名称):用户自定义
readonly(该控件为只读):readonly
disabled(第一次加载该页面时禁用该控件):disabled
-->
eg:(评论区)
<form action="#" method="POST">
评论:<br />
<textarea name="" id="" cols="60" rows="5">
评论时需要遵纪守法,语言文明
</textarea><br/>
<input type="submit" value="提交"/>
</form>
(三)select控件
下拉菜单控件
语法格式:
<select name="" id="" >
<option value="">选项1</option>
<option value="">选项2</option>
<option value="">选项3</option>
</select>
<!--
select标签中常用属性
size:下拉菜单的可见选项数(取值正整数)
multiple:定义multiple="multiple"时,下拉菜单具有多项选择的功能,按住【ctrl】键的同时技能同时选择多项
option标签常用属性
selected:定义selected="selected"时,当前项为默认选中项
*生成表单控件可通过工具快速生成,不必死记控件代码.
-->
五、HTML5新属性
更高效地制作标准Web表单
(一)全新的form属性
<!--
新增autocomplete和novalidate属性
1、autocomplete属性
指定表单是/否有自动完成功能;即表单控件输入的内容记录下来,再次输入时,
会将历史输入显示在下拉列表;如浏览器搜索框的下拉历史搜索
autocomplete不仅能用于form标签,还能用于所有输入类型input标签
属性值
on:有自动完成功能; off:无自动完成功能
2、novalidate属性
指定在提交表单时取消对表单进行有效的检查。
取值为其本身
-->
(二)全新的表单控件
<!--
datalist、keygen等元素可强化表单功能.
datalist定义输入框选项列表
-->
eg:
<form action="#" method="post">
请输入用户名:<input type="text" list="namelist"/>
<datalist id="namelist">
<option >admin</option>
<option >lucy</option>
<option >lily</option>
</datalist>
<input type="submit" value="提交">
</form>
(三)全新的input控件类型
丰富表单功能,更好实现表单控制和验证
<!--
1、email类型<input type="email"/>
专门用于输入E-mail地址的文本输入框,用来验证内容是否符合邮箱地址格式.
2、url类型<input type="url"/>
用于输入url地址的文本框,若输入内容是url地址则提交到服务器,
若不符url地址格式,则不允许提交并提升;如浏览器网址搜索栏
3、tel类型<input type="tel"/>
用于提供输入电话号码的文本框,由于电话格式的多样性,故tel类型通常会与pattern属性
配合使用.
4、search类型<input type="search"/>
专门用于输入搜索关键词的文本框,能自动记录一些字符.
如网站搜索内容后,右侧会有一个删除图标,单击能快速清除内容
5、color类型<input type="color">
用于提供设置颜色的文本框,用于实现一个RGB颜色输入,其默认值为#000000
可通过value属性值更改颜色,color类型文本框单击能打开拾色板可视化选取一种颜色.
-->
eg:
<form action="#" method="get">
请输入邮箱:<input type="email" name="formmail"> <br/>
请输入网址:<input type="url" name="formmail"> <br/>
请输入电话号码:<input type="tel" name="formmail"> <br/>
请输入搜索关键词:<input type="search" name="formmail"> <br/>
请选取一种颜色:<input type="color" name="formmail"> <br/>
<input type="color" name="color2" value="#FF3E96">
<input type="submit" value="提交">
</form>
6、number类型<input type="number">
<!--
用于提供输入数值的文本框,提交表单时会自动检查该输入框中内容是否为数字.
可对输入数字进行限制,其属性说明:
value:指定输入框默认值;
max:指定可接受最大输入值;
min:指定可接受最小输入值;
step:输入域合法的间隔,若不设置默认为1;
-->
eg:
<form action="#" method="get">
请输入数值:<input type="number" name="number1" value="1" min="1" max="20" step="4"> <br/>
<input type="submit" value="提交" />
</form>
7、range类型<input type="range">
提供一定范围内数值的输入范围,在网页中显示为滑动条.
与number属性一样有min、max、step等属性
8、Date pickers类型<input type="date/month/week···">
<!--
指时间日期类型性,提供多个可供选取日期时间的输入类型,用于验证输入的日期.
时间日期类型----说明
date---选取日、月、年
month---选取月、年
week---选取周和年
time---选取时间(小时和分钟)
datetime---选取时间、日、月、年(UTC时间[世界标准时间])
datetime-local---选取时间、日、月、年(本地时间)
-->
eg:
<form action="#" method="get">
<input type="date"/>
<input type="month"/>
<input type="week"/>
<input type="time"/>
<input type="datetime"/>
<input type="datetime-local"/>
<input type="submit" value="提交" />
</form>
(四)全新的input控件属性
指定输入类型的行为和限制,列如autofocus、min、max、pattern等.
1、autofocus属性
<!--
指定页面加载后是否自动获取焦点,将标签属性值指定为true时,
表页面加载完毕后会自动获取该焦点(或理解为跳转至该焦点).
eg:
<form action="#" method="get">
请输入关键词:<input type="text" name="user_name" autocomplete="off" autofocus="true"/><br/>
<input type="submit" value="提交"/>
</form>
-->
2、form属性
<!--
表单子元素可写form标签以外,但这个元素指定form属性并设置属性值为该表单id,
则这个元素属于表单的一部分
-->
eg:
<form action="#" method="get" id="user_form">
请输入你的姓名:<input type="text" name="first_name">
<input type="submit" value="提交"/>
</form>
<p>下面输入框在form元素外,但指定了form属性为表单的id,<br>
所以输入框内容属于表单的一部分</p>
请输入您的昵称:<input type="text" name="last_name" form="user_form"/><br>
3、list属性
<!--
datalist元素实现数据列表下拉效果,而list属性用于
指定输入框所绑定的datalist元素,其值是某个datalist元素的id。
-->
eg:
<form action="#" method="get">
请输入网址:<input type="url" list="url_list" name="weburl"/>
<datalist id="url_list">
<option label="新浪" value="http://www.sina.com.cn"></option>
<option label="搜狐" value="http://www.sohu.com"></option>
<option label="传智" value="http://www/itcase.cn"></option>
</datalist>
<input type="submit" value="提交">
</form>
4、multiple属性
<!--
指定输入框可以选择多个值
如用于email属性,表可输入多个E-mail地址,用逗号隔开即可;
用于file属性时,表可选择多个文件.
-->
5、min、max和step属性
<!--
用于为包含数字或日期的input输入类型规定限制,即加一个数值的约束.
max:允许输入最大值
min:允许输入最小值
step:规定输入框合法的数字间隔,不设置默认为1
-->
6、pattern属性
<!--
用于验证input类型输入框中用户输入的内容是否与所定义的正则表达式相匹配(即表单验证)
pattern适用的类型是:text、search、url、tel、email和password和<input />标签。
常用正则表达式:
正则表达式-----------------说明
^[0-9]*$-----------------数字
^\d{n}$-----------------n位的数字
^\d{n,}$-----------------至少n位的数字
^\d{m,n}$-----------------零和非零开头的数字
^([1-9][0-9]*)+(.[0-9]{1,2})?$----非零开头的最多带两位小数的数字
^(\-|\+)?\d+(\.\d+)?$-------------整数、负数、和小数
^\d+$或^[1-9]\d*|0$---------------非负整数
^-[1-9]\d*|0$或^((-\d+)|(0+))$----非正整数
^[\u4e00-\u9fa5]{0,}$-------------汉字
^[A-Za-z0-9]+$或^[A-Za-z0-9]{4,40}$----英文和数字
^[A-Za-z]+$--------------由26个英文字母组成的字符串
^[A-Za-z0-9]+$-----------由数字和26个英文字母组成的字符串
^\w+$或^\w[3,20]$--------由数字、26个英文字母或者下画线组成的字符串
^[\u4E00-\u9FA5A-Za-z0-9_]+$---中文、英文、数字、包括下画线
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.])\w+)*$---email地址
[a-zA-Z]+://[^\s]*或^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$---URL地址
^\d{15}|\d{18}$---------身份证号(15、18位数字)
^([0-9]){7,18}(x|X)?$或^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$---以数字、字母x结尾的短身份证号码
^[a-zA-Z][a-zA-Z0-9_]{4,15}$---账号是否合法(以字母开头、长度在5-16字节,允许字母数字、下画线)
^[a-zA-Z]\w{5,17}$-------------密码(以字母开头,长度在6~18之间,只能包含字母、数字和下画线)
-->
eg:
<form action="#" method="get">
账号: <input type="text" name="username" pattern="[a-zA-Z][a-zA-Z0-9_]{4,15}$" />(以字母开头,长度在5~16字节,允许字母、数字、下画线)<br/>
密码:<input type="password" name="pwd" pattern="^[a-zA-Z]\w{5,17}$" />(以字母开头,长度在6~18之间,只能包含字母、数字和下画线)<br/>
身份证号:<input type="text" name="mycard" pattern="^\d{15}|\d{18}$" />(15位、18位数字)
Email地址:<input type="email" name="myemail" pattern="^\w+([-+.]\w)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$" />
<input type="submit" value="提交" />
</form>
7、placeholder属性
用于为input类型的输入框提供相关提示信息,如QQ登录框里的"QQ账号"提示信息
8、required属性
用于判断用户是否在表单输入框中输入内容,当表单为空时不允许提交表单.
eg(7/8):
<form action="#" method="get">
请输入姓名:<input type="text" name="user_name" required="required" placeholder="设置您的名字" />
<input type="submit" value="提交" />
</form>
六、CSS控制表单样式
即为表单设置样式使其更加美观;如为表单、文本框添加背景颜色、设置文本样式等。
</body>
</html>
HTML5+CSS3 ——【笔记】5、表单和表格(完结)
于 2022-07-07 21:12:58 首次发布