表格与表单
表格标记
创建表格
<table>
<tr>
<td>单元格内的文字</td>
...
</tr>
...
</table>
包含三对HTML标记,分别为<table></table>、<tr></tr>、<td></td>,他们是创建表格的基本标记,缺一不可
<table></table>:用于定义一个表格。
<tr></tr>:用于定义表格中的一行,必须嵌套在<table></table>标记中,在<table></table>中包含几对<tr></tr>,就有几行表格。
<td></td>:用于定义表格中的单元格,必须嵌套在<tr></tr>标记中,一对<tr></tr>中包含几对<td></td>,就表示该行中有多少列(或多少个单元格)。
注意:
学习表格的核心是学习<td></td>标记,他就像一个容器,可以容纳所有的元素,<td></td>中甚至可以嵌套表格<table></table>。但是<tr></tr>中只能嵌套<td></td>,直接在<tr></tr>标记中输入文字的做法是不被允许的。
<table>标记的属性
border 设置表格的边框(默认border="0"无边框) 像素值
cellspacing 设置单元格与单元格边框之间的空白间距 像素值(默认为2像素)
cellpadding 设置单元格内容与单元格边框之间的空白间距 像素值(默认为1像素)
width 设置表格的宽度 像素值
height 设置表格的高度 像素值
align 设置表格在网页中的水平对齐方式 left、center、right
bgcolor 设置表格的背景颜色 预定义的颜色值、十六进制#RGB、rgb(r,g,b)
background 设置表格的背景图像 url地址
1、border属性
用于设置表格的边框,默认为0
<table border=“20”>
2、cellspacing属性
用于设置单元格与单元格边框之间的空白间距,默认为2px
<table border=“20” cellspacing=“20”>
3、cellpadding属性
用于设置单元格内容与单元格边框之间的空白间距,默认为1px
<table border=“20” cellspacing=“20” cellpadding=“20”>
注意:
cellpadding类似于盒子模型的内边距padding,指的是单元格内部的距离,cellspacing则指的是外部单元格与单元格之间的距离。可以结合盒子模型的内外边距理解cellpadding与cellspacing的不同。
4、width与height属性
默认情况下,表格的宽度和高度靠其自身的内容来支撑。要想更改表格的尺寸,就需对其应用宽度属性width或高度属性height
当为表格标记<table>同时设置width、height和cellpadding属性时,cellpadding的显示效果将不太容易观察,所以一般在未给表格设置宽高的情况下测试cellpadding属性。
5、align属性
align属性用于定义元素的水平对齐方式,其可选属性值为left、center、right。值得一提的是,当对<table>标记应用align属性时,控制的为表格的水平对齐方式,单元格中的内容不受影响。
6、bgcolor属性
在<table>标记中,bgcolor属性用于设置表格的背景颜色。
7、background属性
在<table>标记中,background属性用于设置表格的背景图像。
<tr>标记的属性
属性名 含义 常用属性值
height 设置行高度 像素值
align 设置一行内容的水平对齐方式 left、center、right
valign 设置一行内容的垂直对齐方式 top、middle、bottom
bgcolor 设置行背景颜色 预定义的颜色值、十六进制#RGB、rgb(r,g,b)
background 设置行背景图像 url地址
注意
<tr>标记无宽度属性width,其宽度取决于表格标记<table>。
可以对<tr>标记应用valign属性,用于设置一行内容的垂直对齐方式。
虽然可以对<tr>标记应用background属性,但是在<tr>标记中此属性兼容问题严重。
<td>标记的属性
属性名 含义 常用属性值
width 设置单元格的宽度 像素值
height 设置单元格的高度 像素值
align 设置单元格内容的水平对齐方式 left、center、right
valign 设置单元格内容的垂直对齐方式 top、middle、bottom
bgcolor 设置单元格的背景颜色 预定义的颜色值、十六进制#RGB、rgb(r,g,b)
background 设置单元格的背景图像 url地址
colspan 设置单元格横跨的列数(用于合并水平方向的单元格) 正整数
rowspan 设置单元格竖跨的行数(用于合并竖直方向的单元格) 正整数
注意:
1、在<td>标记的属性中,重点掌握colspan和rolspan,其他的属性了解即可,不建议使用,均可用CSS样式属性替代。
2、当对某一个<td>标记应用width属性设置宽度时,该列中的所有单元格均会以设置的宽度显示。
3、当对某一个<td>标记应用height属性设置高度时,该行中的所有单元格均会以设置的高度显示。
<th>标记及其属性
设置表头非常简单,只需用表头标记<th></th>替代相应的单元格标记<td></td>即可。
表格的结构
<thead></thead>:用于定义表格的头部,必须位于<table></table>标记中,一般包含网页的logo和导航等头部信息。
<tfoot></ tfoot >:用于定义表格的页脚,位于<table></table>标记中<thead></thead>标记之后,一般包含网页底部的企业信息等。
<tbody></tbody>:用于定义表格的主体,位于<table></table>标记中<tfoot></ tfoot >标记之后,一般包含网页中除头部和底部之外的其他内容。
CSS控制表格样式
CSS控制表格边框
注意:
1、 border-collapse属性的属性值除了collapse(合并)之外,还可以为separate(分离),默认为separate。
2、当表格的border-collapse属性设置为collapse时, HTML中设置的cellspacing属性值无效。
3、行标记<tr>无border样式属性,本书不再做具体的演示,初学者可以自己测试加深理解。
CSS控制单元格边距
注意:
行标记<tr>无内边距属性padding和外边距属性margin
CSS控制单元格的宽高
对同一行中的单元格定义不同的高度,或对同一列中的单元格定义不同的宽度时,最终的宽度或高度将取其中的较大者
认识表单
表单控件:包含了具体的表单功能项,如单行文本输入框、密码输入框、复选框、提交按钮、重置按钮等。
提示信息:一个表单中通常还需要包含一些说明性的文字,提示用户进行填写和操作。
表单域:他相当于一个容器,用来容纳所有的表单控件和提示信息,可以通过他定义处理表单数据所用程序的url地址,以及数据提交到服务器的方法。如果不定义表单域,表单中的数据就无法传送到后台服务器。
表单控件是表单的核心,常用的表单控件
<input /> 表单输入控件(可定义多种表单项)
<textarea></textarea> 定义多行文本框
<select></select> 定义一个下拉列表(必须包含列表项)
创建表单
<form action="url地址" method="提交方式" name="表单名称">
各种表单控件
</form>
<form>与</form>之间的表单控件是由用户自定义的,action、method和name为表单标记<form>的常用属性
Action:请求路径,确定表单提交到服务器的地址(路径)
在表单收集到信息后,需要将信息传递给服务器进行处理,action属性用于指定接收并处理表单数据的服务器程序的url地址
method:请求方式
get:默认值
提交时数据追加在请求路径上
数据格式k/v,追加使用?连接,之后每一对数据使用&连接
请求长度有限所以get请求提交的数据有限
如:/1.html?username=jack&password=1234
post:
提交数据不再请求路径上追加(即不显示在地址栏上)
提交是的数据大小不显示
name
注意:要想让一个表单有意义,就必须在<form>与</form>之间添加相应的表单控件
表单控件
input控件(输入域标签)
<input />标记为单标记,type属性为其最基本的属性,用于获取用户输入信息,type属性值不同,搜集方式不同。其取值有多种,用于指定不同的控件类型。
属性 属性值 描述
type
text 单行文本输入框(默认宽度为20)
password 密码输入框
radio 单选按钮
checkbox 复选框
button 普通按钮
submit 提交按钮
reset 重置按钮
image 图像形式的提交按钮
hidden 隐藏域
file 文件域
image:图形提交按钮
name 由用户自定义 控件的名称。元素名,如果需要表单数据提交到服务器,必须提供name属性值,服务器通过属性值获取提交的数据
value 由用户自定义 input控件中的默认文本值
size 正整数 input控件在页面中的显示宽度
readonly 该控件内容为只读(不能编辑修改)
disabled 第一次加载页面时禁用该控件(显示为灰色)
checked 定义选择控件默认被选中的项
maxlength 正整数 控件允许输入的最多字符数
textarea控件(文本域)
<textarea cols="每行中的字符数" rows="显示的行数">
文本内容
</textarea>
其中cols用来定义多行文本输入框每行中的列数,rows用来定义多行文本输入框显示的行数,他们的取值均为正整数
注意:
各浏览器对cols和rows属性的理解不同,当对textarea控件应用cols和rows属性时,多行文本输入框在各浏览器中的显示效果可能会有差异。所以在实际工作中,更常用的方法是使用CSS的width和height属性来定义多行文本输入框的宽高。
select控件(下拉列表标签)
<select>
<option>选项1</option>
<option>选项2</option>
<option>选项3</option>
...
</select>
每对<select></select>中至少应包含一对<option></option>
在HTML中,可以为<select>和<option>标记定义属性,以改变下拉菜单的外观显示效果
标记名 常用属性 描述
<select>
name:发给服务器的名称
size 指定下拉菜单的可见选项数(取值为正整数)。
multiple 定义multiple="multiple"时,下拉菜单将具有多项选择的功能,方法为按住Ctrl键的同时选择多项。
<option> selected 定义selected =" selected "时,当前项即为默认选中项。
按钮标签:<button>
<button type="button|reset|submit">提供"普通|重置|提交"功能
CSS控制表单样式
注意
由于form是块元素,重置浏览器的默认样式时,需要清除其内边距padding和外边距margin。
input控件默认有边框效果,当使用<input />标记定义各种按钮时,通常需要清除其边框。
通常情况下需要对文本框和密码框设置2到3像素的内边距,以使用户输入的内容不会紧贴输入框。